uni-app项目离线打包之Android

uni-app项目离线打包

uni-app项目离线打包官方文档 - 点击跳转

当我们需要使用原生开发时,需要对uni-app项目使用离线打包方式进行调试运行及打包。

以下将简单整理uni-app项目离线打包Android应用相关流程,让你对整个流程有一个大体的了解。

离线打包流程

一、创建安卓项目

使用 Android Studio 4.1+ 新建一个空白项目。

  1. 打开Android Studio:File > New > New Project > Empty Activity > Next
  2. 填写项目名称、包名、位置,选择java语言(离线打包不支持Kotlin语言),SDK选择19及以上;然后点击 Finish完成创建。

二、配置SDK环境

下载好 Android 离线 SDK 3.0+ 文件,配置uni-app相关环境。

  1. SDK\libs目录的
    lib.5plus.base-release.aar
    android-gif-drawable-release@1.2.17.aar
    uniapp-v8-release.aar
    msa_mdid_1.0.13.aar
    拷贝到新项目的libs目录下。
  2. build.gradledependencies属性中添加资源引用:
    implementation fileTree(dir: 'libs', include: ['*.aar', '*.jar'], exclude: [])
    implementation "com.android.support:support-v4:28.0.0"
    implementation "com.android.support:appcompat-v7:28.0.0"
    implementation 'com.android.support:recyclerview-v7:28.0.0'
    implementation 'com.facebook.fresco:fresco:1.13.0'
    implementation "com.facebook.fresco:animated-gif:1.13.0"
    implementation 'com.github.bumptech.glide:glide:4.9.0'
    implementation 'com.alibaba:fastjson:1.1.46.android'
    
  3. build.gradleandroid属性中添加aaptOptions配置:
    aaptOptions {  
      additionalParameters '--auto-add-overlay'  
      ignoreAssetsPattern "!.svn:!.git:.*:!CVS:!thumbs.db:!picasa.ini:!*.scc:*~"  
    }
    

三、项目应用配置

  1. 版本号build.gradle中编辑versionCodeversionName

  2. 应用名app > res > main > values > strings.xml文件,修改app_name字段值,该值为安装到手机上桌面显示的应用名称,建议与uni-app项目中manifest.json中name一致。

  3. 启动页 配置应用启动页及provider节点,让uni-app接管大权。先删除Androidmanifest.xml中目默认的MainActivity的节点;再将下述内容添加到application节点中。

    <activity
          android:name="io.dcloud.PandoraEntry"
          android:configChanges="orientation|keyboardHidden|keyboard|navigation"
          android:label="@string/app_name"
          android:launchMode="singleTask"
          android:hardwareAccelerated="true"
          android:theme="@style/TranslucentTheme"
          android:screenOrientation="user"
          android:windowSoftInputMode="adjustResize" >
          <intent-filter>
              <action android:name="android.intent.action.MAIN" />
              <category android:name="android.intent.category.LAUNCHER" />
          </intent-filter>
      </activity>
      <activity
          android:name="io.dcloud.PandoraEntryActivity"
          android:launchMode="singleTask"
          android:configChanges="orientation|keyboardHidden|screenSize|mcc|mnc|fontScale|keyboard"
          android:hardwareAccelerated="true"
          android:permission="com.miui.securitycenter.permission.AppPermissionsEditor"
          android:screenOrientation="user"
          android:theme="@style/DCloudTheme"
          android:windowSoftInputMode="adjustResize">
          <intent-filter>
              <category android:name="android.intent.category.DEFAULT" />
              <category android:name="android.intent.category.BROWSABLE" />
              <action android:name="android.intent.action.VIEW" />
              <data android:scheme="h56131bcf" />
          </intent-filter>
      </activity>
      <!--provider节点必须添加-->
      <provider
          android:name="io.dcloud.common.util.DCloud_FileProvider"
          android:authorities="${apk.applicationId}.dc.fileprovider"
          android:exported="false"
          android:grantUriPermissions="true">
          <meta-data
              android:name="android.support.FILE_PROVIDER_PATHS"
              android:resource="@xml/dcloud_file_provider" />
      </provider>
    

    注意:${apk.applicationId}必须替换成当前应用的包名。

  4. 应用图标drawable目录下:
    icon.png为应用的图标。
    push.png为推送消息的图标。
    并修改Androidmanifest.xmlapplication节点的icon属性为@drawable/icon
    如果有时间和心情,可以将各个分辨率图片进行相应整理。

  5. 启动界面drawable目录下:
    splash.png为应用启动页的图片。
    为了适配多种设备屏幕,免去图片拉伸变形困扰,建议是.9.png格式的图片来制作启动页面,详见用一张正方形9.png图片搞定安卓启动页

四、项目资源配置

  1. 资源目录java同级创建assets\data文件夹,将SDKassets\data文件夹中的内容拷贝进去。SDK升级时,assets\data下的资源需要一起更新。
  2. 源码目录assets下创建apps文件夹,用于存放编译后的uni-app源码。
  3. APPID 修改dcloud_control.xml中的appid,与manifest.json中的id和文件夹名一致。

五、项目资源生成

  1. 编译 在HBuilder X中,选中uni-app项目发行 > 原生App-本地打包 > 生成本地打包App资源,等待资源生成完成。
  2. 拷贝 将生成好的资源连带项目ID一级的文件夹拷贝至 源码目录 下。

六、跑起来,打包

  1. Android手机打开开发者模式连接电脑,Android Studio Run 'app',测试应用是否正常。
  2. Android Studio Build > Generate Signed Bundle / APK 打包应用。

后续版本更新

以后的更新基本上就是重复第五、六步即可,外加修改版本号。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
uni-app是一款基于Vue.js开发的跨平台应用框架,可以用于快速开发同时支持多个平台的应用程序。uni-app提供了一种打包离线app的方式,可以将应用程序打包成原生的安装包,使得应用可以在手机上离线运行。 要打包离线app,首先需要在uni-app项目中进行相关配置。在项目的manifest.json文件中,可以设置app的名称、图标、启动页等信息。同时,还可以配置应用的权限、网络请求等。 接下来,需要选择目标平台进行打包uni-app支持多个平台,包括iOS、Android、H5、微信小程序等。根据不同的平台,可以选择相应的打包方式。 对于iOS平台,可以使用HBuilderX进行打包。在HBuilderX中,选择菜单栏的“发行”-“原生App-云打包”,然后按照提示进行相关配置,最后生成ipa文件即可。 对于Android平台,可以使用HBuilderX或者使用命令行进行打包。使用HBuilderX时,选择菜单栏的“发行”-“原生App-云打包”,然后按照提示进行相关配置,最后生成apk文件即可。使用命令行时,需要安装好Android SDK,并配置好环境变量,然后使用命令行工具执行相应的打包命令。 对于H5平台,可以直接将项目打包成一个静态网页,然后部署到服务器上即可。 对于微信小程序平台,可以使用HBuilderX进行打包。在HBuilderX中,选择菜单栏的“发行”-“小程序”,然后按照提示进行相关配置,最后生成小程序的代码即可。 总结一下,uni-app提供了多种打包离线app的方式,可以根据不同的平台选择相应的打包方式进行配置和生成安装包。通过这些步骤,就可以将uni-app项目打包离线app,使得应用可以在手机上离线运行。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值