环境:Android,Android Studio,Java1.8
参考地址:《Android 原生工程配置》,《Android 离线打包使用插件》
一、创建证书
参考:《Android平台签名证书(.keystore)生成指南》
具体命令:
生成
sh
keytool -genkey -alias testalias -keyalg RSA -keysize 2048 -validity 36500 -keystore test.keystore
- testalias是证书别名,可修改为自己想设置的字符,建议使用英文字母和数字
- test.keystore是证书文件名称,可修改为自己想设置的文件名称,也可以指定完整文件路径
- 36500是证书的有效期,表示100年有效期,单位天,建议时间设置长一点,避免证书过期
生成完可能会提示密码库更换(貌似是这个),控制台会提示对应命令,复制执行即可
查看证书信息
sh
keytool -list -v -keystore test.keystore
Enter keystore password: //输入密码,回车
二、申请离线打包AppKey
登录开发者中心,选中app点击应用名称,选择各平台信息,点击新增,填写信息,具体不做详细说明,见官方说明。注意:包名一定要跟app包名一致
三、Android工程项目
下载Android离线SDK:最新android平台SDK下载,解压,然后在Android Studio中导入HBuilder-Integrate-AS项目,因为这是官方的Demo,只需要配置一些参数即可。
注意:
- File-Settings-Build,Execution,Deployment-Build Tools-Gradle 中的Gradle JDK 需选择 Java1.8 版本。
项目打开默认是Android模式,点击左上角Android下拉,选择Project。
1. 配置AppKey
找到simpleDemo中的 src\main\AndroidManifest.xml
,找到name值为 dcloud_appkey
的 meta-data,然后将AppKey复制到value中。
2. 包名
找到simpleDemo中的 src\main\AndroidManifest.xml
,将manifest的 package
改为自己app的包名
3. 配置信息
找到simpleDemo中的 build.gradle
找到 defaultConfig
- 将
applicationId
改为自己项目的包名(要跟AppKey的包名对应) versionCode
和versionName
改为自己app的版本
versionCode为应用的版本号(整数值),用于各应用市场的升级判断,建议与manifest.json中version -> code值一致
versionName为应用的版本名称(字符串),在系统应用管理程序中显示的版本号,建议与manifest.json中version -> name值一致。targetSdkVersion
设置为30或以上minSdkVersion
最低支持21,小于21在部分5.0以下机型上将无法正常使用
4. 证书
在 simpleDemo\build.gradle
中的signingConfigs下,将证书信息改为自己的证书信息
- keyAlias 证书别名
- keyPassword 别名密码
- storeFile 证书路径,绝对路径即可,如D:\Android\test.keystore
- storePassword 文件密码
5. 应用名称
打开 simpleDemo\src\main\res\values\strings.xml
,app_name的值改为自己应用的名字
6. 应用图标
在simpleDemo\src\main\res下创建文件夹:
drawable、drawable-hdpi、drawable-ldpi、drawable-mdpi、drawable-xhdpi、drawable-xxhdpi
然后将不同尺寸的图片分别以icon、push、splash命名放到不同文件夹下
- icon.png为应用的图标
- push.png为推送消息的图标
- splash.png为应用启动页的图标
图标大小参考:
分辨率 | 图标尺寸 |
---|---|
ldpi(低密度) | 36 x 36 px |
mdpi(中等密度) | 48 x 48 px |
hdpi(高密度) | 72 x 72 px |
xhdpi(超高密度) | 96 x 96 px |
xxhdpi(超超高密度) | 144 x 144 px |
用于启动页对不同屏幕的适应情况可能会有所拉伸,所以可以使用.9.png,参考:《Android平台启动图使用.9.png图片》
启动页大小参考:
分辨率 | 启动页尺寸 |
---|---|
ldpi(低密度) | 200 x 320 px |
mdpi(中等密度) | 320 x 480 px |
hdpi(高密度) | 480 x 800 px |
xhdpi(超高密度) | 720 x 1280 px |
xxhdpi(超超高密度) | 1080 x 1920 px |
7. 引入Uniapp项目
删掉 simpleDemo\src\main\assets\apps
,下的文件夹,在HBuilderX中,点击发行-原生App本地打包-生成本地App打包资源
,待打包完后,将 dist-resources
下的文件夹复制到 simpleDemo\src\main\assets\apps
下
将 simpleDemo\src\main\assets\data\dcloud_control.xml
中的appid值改为自己Uniapp项目的AppID(生成自定义基座,需要在根节点下添加debug="true"和syncDebug="true")
8. 运行/打包
链接手机,打开USB调试或者打开安卓模拟器,点击Android Studio上方的绿色三角即可。
点击Android Studio菜单的 Build-Generate Signed Bundle / APK...
,弹出窗中选择APK,点击Next,然后选择证书,填写密码等信息即可。
三、原生插件
如果离线打包使用了原生插件,需要将插件文件夹下的android、以及libs中的arr和jar都复制到 simpleDemo\libs
中,然后在 simpleDemo\src\main\assets
中创建 dcloud_uniplugins.json
文件,将插件信息写入,如:
json
{
"nativePlugins": [
{
"plugins": [
{
"type": "module",
"name": "JG-JCore",
"class": "cn.jiguang.uniplugin_jcore.JCoreModule"
},
{
"type": "module",
"name": "JG-JPush",
"class": "cn.jiguang.uniplugin_jpush.JPushModule"
}
]
}
]
}
可具体找到插件package.json中的plugins信息复制
如果插件需要特定参数,如在HBuilderX的manifest.json中的App原生插件配置,可能要填写一些参数,需要在 src\main\AndroidManifest.xml
中配置特定的meta-data,name值往往与HBuilderX中要求的一直,注意省略_ANDROID、_IOS字符,如极光配置:
HBuilderX中为JPUSH_APPKEY_ANDROID,而AndroidManifest需配置:
xml
<meta-data
android:name="JPUSH_APPKEY"
android:value="你申请的appkey" />
感谢阅读!点个赞留个足迹吧!