Uniapp

Uniapp开发安卓APP

离线缓存与数据持久化

离线缓存: 将网络请求的数据缓存到本地,用户在没有网络链接的情况下可以继续访问已缓存的数据。
Uniapp使用uni.setStorageSyncuni.getStorageSync来实现

uni-app的Storage在不同端的实现不同, App端为原生的plus.storage,无大小限制,不是缓存,是持久化的

Uniapp离线打包安卓APK

步骤

一些下载

  1. 下载安装Android Studio,下载地址
  2. 下载HbuilderX最新的SDK,下载地址

HbuilderX离线打包

  1. HbuilderX界面选择发行 -> 原生APP-本地打包 -> 生成本地打包APP资源
  2. 打包完成后会在控制台输出打包生成的文件地址xxxx/__UNI__XXX/xxx,__UNI__XXX是本项目对应的Appid
  3. 将下载的HbuilderX最新的SDK解压,使用Android Studio打开包中的HBuilder-Integrate-AS文件夹
  4. HBuilder-Integrate-AS\simpleDemo\src\main\assets\apps\下的所有文件删除,替换成步骤2中生成的整个__UNI__XXX/文件夹
  5. src/main/assets/data/dcloud_control.xml中的APPID修改为上面的__UNI__XXX
  6. Android Studio界面选择Build -> Generate Signed Bundle/APK...,在跳出的弹窗页面选择APK,选择Next,进入下一步
  7. 首次生成选择Create new ...,key store path要在simpleDemo文件夹下,可以直接放在根目录;密码和别名都可以自定义,点击ok开始生成签名文件
    注:
    • 此步骤是在生成签名文件,由于下载的Demo包是Gradle,可能会出现生成签名出错的问题,目前遇到的基本都是提示invalid keystore format
    • invalid keystore format很可能是因为项目本身的JDK版本和电脑环境变量的JDK版本不一致,将两者调成JDK12是可以运行的
  8. /simpleDemo/build.gradle中配置信息,keyAlias为刚刚填写的key的别名,keypassword为自定义的密码,StorageFile为刚刚生成的文件名
  9. 查看刚生成的签名文件(此处以test.keystore为例)的签名,进入到test.keystore文件夹,在命令行输入keytool -list -v -keystore test.keystore
  10. 步骤9中查看的签名可能只会有SHA1SHA256两种,但实际配置时还需要MD5签名,则只能使用另一种方法查看
  11. 登录UniAPP开发者中心管理应用,进入相应的应用,选择各平台信息标签,如果没有则自己新建一个
  12. 配置信息中的包名需要填写在/simpleDemo/build.gradle文件的applicationId
  13. 填写步骤10中的MD5信息、SHA1信息、SHA256信息,提交后会生成对应的APPKey
  14. 将生成的APPKey填入src/main/AndroidManifest.xmlandroid:value
  15. \src\main\res\drawable文件夹下的icon.pngpush.pngsplash.png分别对应APP的logo、消息推送logo、启动页图片,可改成自定义
  16. \src\main\res\values\strings.xml中修改APP的名称
  17. Android Studio界面选择Build -> Build Bundle(s)/APK(s) -> Build APK(s)开始打包
  18. 打包后的文件位置在\build\outputs\apk\debug\simpleDemo-debug.apk(\release\simpleDemo-release.apk不是自定义的apk包,为啥???有待继续研究)

查看签名文件的SHA1 SHA256 MD5信息

生成test.keystore文件后,在Android StudioHBuilder-Integrate-AS项目根目录下打开终端,输入./gradlew signingReport命令

正常情况下能获取到SHA1 SHA256 MD5信息,如果报错则查看jdk版本是否一致

如果修改过环境变量,需要重启Android Studio再操作

参考文章:

  1. uniapp离线打包安卓APP全过程
  2. HBuilderX离线SDK (Android)
  3. Android 连接第三方模拟器
  4. uniapp离线打包在Android Studio创建的jsk证书无法获取MD5的问题