electron

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
# testimg.png 为原始文件
# 新建文件夹 icons.iconset
# man sips | man iconutil

sips -z 16 16 testimg.png --out icons.iconset/testimg_16x16.png

sips -z 32 32 testimg.png --out icons.iconset/testimg_16x16@2x.png

sips -z 32 32 testimg.png --out icons.iconset/testimg_32x32.png

sips -z 64 64 testimg.png --out icons.iconset/testimg_32x32@2x.png

sips -z 64 64 testimg.png --out icons.iconset/testimg_64x64.png

sips -z 128 128 testimg.png --out icons.iconset/testimg_64x64@2x.png

sips -z 128 128 testimg.png --out icons.iconset/testimg_128x128.png

sips -z 256 256 testimg.png --out icons.iconset/testimg_128x128@2x.png

sips -z 256 256 testimg.png --out icons.iconset/testimg_256x256.png

sips -z 512 512 testimg.png --out icons.iconset/testimg_256x256@2x.png

sips -z 512 512 testimg.png --out icons.iconset/testimg_512x512.png

sips -z 1024 1024 testimg.png --out icons.iconset/testimg_512x512@2x.png


iconutil -c icns icons.iconset -o testimg.icns

Flutter

https://flutter.cn/docs/development/ui/assets-and-images

  • 可以借助 sips 进行生成,编写个生成脚本
  • 然后按约定规则放置到对应位置
  • ios 和安卓的规则不完全一样,但是思路是一样的,生成不同尺寸的图片,按照约定的命名规范命名,放置到对应的文件夹
  • assets 基于像素密度结构

Flutter 应用,最终以原生工程的方式打包运行在 Android 和 iOS 平台上,so, Flutter 启动时依赖的是原生 Android &&iOS 的运行环境;在引擎初始化之前的(如启动图、App 图标、App 名字)需要在原生工程中实现;

IOS

  • 图标:ios/Runner/Assets.xcassets/AppIcon.appiconset
  • 启动图:ios/Runner/Assets.xcassets/LaunchImage.imageset

Android

  • app/src/main/res/mipmap
  • res/drawable + 分辨率
  • res/layout 布局 | res/values 资源描述 | assets 原始文件
  • drawable
    可以借助 sips 进行生成,编写个生成脚本
    最好是借助 UI 的专业工具进行生成
  • 启动图:app/src/main/res/drawable/lauch_background.xml