Uniapp开发安卓APP
离线缓存与数据持久化
离线缓存: 将网络请求的数据缓存到本地,用户在没有网络链接的情况下可以继续访问已缓存的数据。
Uniapp使用uni.setStorageSync和uni.getStorageSync来实现
uni-app的Storage在不同端的实现不同, App端为原生的plus.storage,无大小限制,不是缓存,是持久化的
Uniapp离线打包安卓APK
步骤
一些下载
HbuilderX离线打包
HbuilderX界面选择发行 -> 原生APP-本地打包 -> 生成本地打包APP资源- 打包完成后会在控制台输出打包生成的文件地址
xxxx/__UNI__XXX/xxx,__UNI__XXX是本项目对应的Appid - 将下载的HbuilderX最新的SDK解压,使用
Android Studio打开包中的HBuilder-Integrate-AS文件夹 - 将
HBuilder-Integrate-AS\simpleDemo\src\main\assets\apps\下的所有文件删除,替换成步骤2中生成的整个__UNI__XXX/文件夹 - 将
src/main/assets/data/dcloud_control.xml中的APPID修改为上面的__UNI__XXX Android Studio界面选择Build -> Generate Signed Bundle/APK...,在跳出的弹窗页面选择APK,选择Next,进入下一步- 首次生成选择
Create new ...,key store path要在simpleDemo文件夹下,可以直接放在根目录;密码和别名都可以自定义,点击ok开始生成签名文件
注:- 此步骤是在生成签名文件,由于下载的Demo包是Gradle,可能会出现生成签名出错的问题,目前遇到的基本都是提示
invalid keystore format invalid keystore format很可能是因为项目本身的JDK版本和电脑环境变量的JDK版本不一致,将两者调成JDK12是可以运行的
- 此步骤是在生成签名文件,由于下载的Demo包是Gradle,可能会出现生成签名出错的问题,目前遇到的基本都是提示
- 在
/simpleDemo/build.gradle中配置信息,keyAlias为刚刚填写的key的别名,keypassword为自定义的密码,StorageFile为刚刚生成的文件名 - 查看刚生成的签名文件(此处以
test.keystore为例)的签名,进入到test.keystore文件夹,在命令行输入keytool -list -v -keystore test.keystore - 步骤9中查看的签名可能只会有
SHA1和SHA256两种,但实际配置时还需要MD5签名,则只能使用另一种方法查看 - 登录UniAPP开发者中心管理应用,进入相应的应用,选择
各平台信息标签,如果没有则自己新建一个 - 配置信息中的包名需要填写在
/simpleDemo/build.gradle文件的applicationId中 - 填写步骤10中的
MD5信息、SHA1信息、SHA256信息,提交后会生成对应的APPKey - 将生成的APPKey填入
src/main/AndroidManifest.xml的android:value \src\main\res\drawable文件夹下的icon.png、push.png、splash.png分别对应APP的logo、消息推送logo、启动页图片,可改成自定义- 在
\src\main\res\values\strings.xml中修改APP的名称 Android Studio界面选择Build -> Build Bundle(s)/APK(s) -> Build APK(s)开始打包- 打包后的文件位置在
\build\outputs\apk\debug\simpleDemo-debug.apk(\release\simpleDemo-release.apk不是自定义的apk包,为啥???有待继续研究)
查看签名文件的SHA1 SHA256 MD5信息
生成test.keystore文件后,在Android Studio的HBuilder-Integrate-AS项目根目录下打开终端,输入./gradlew signingReport命令
正常情况下能获取到SHA1 SHA256 MD5信息,如果报错则查看jdk版本是否一致
如果修改过环境变量,需要重启Android Studio再操作