uni-app Android创建最精简离线打包工程(转后改),不喜勿喷

发布于 1周前 作者 gougou168 来自 Uni-App

uni-app Android创建最精简离线打包工程(转后改),不喜勿喷

创建一个最精简的5 SDK工程

1 创建Android原生工程

首先创建一个空的Android Studio工程
打开AndroidStudio点击File->New->New Project

然后一路点击“next”到下面这个页面点击“finish”即可

2 添加5 SDK需要使用的jar包到工程

原生工程中使用5 SDK必须要在工程中添加如下几个jar

  • nineoldandroid-2.4.0.jar
  • pdr.jar
  • my-imageloader.jar
  • my-nineoldandroids-2.4.0.jar
  • ui.jar
  • nativeui.jar

(需要用到别的包的话可以自行添加,我这边可能会添加了几个gif.jar等等的包)

从SDK/libs目录下找到这几个文件并拷贝到工程的libs目录下

2. 添加成功后选中libs目录里的库文件,鼠标右键打开菜单,选择“Add As Library…”将填加到工程内的jar文件链接到工程里

3 成功后静态库文件前会出现一个三角形的图标,我们还可以通过修改build.gradle文件修改引用的库文件。(这一步编译器会自动同步加完库后会自动添加,Build-Clean Project会同步);

3 添加资源到工程

1 在res目录上右键打开菜单,点击“Show in Explorer”打开res文件所在的目录

2 删除目录下已有的目录,拷贝SDK/res目录下的全部目录到工程的res目录下

3 选择project,在app->src->main目录下添加assets目录

4 拷贝SDK/assets/目录下的data目录和res目录到工程的目录下

注意 fonts文件夹及其中的字体文件是供app中页面窗口标题栏控件左侧返回按钮使用的。

4 修改原生工程的Androidmanifest.xml文件

打开工程的AndroidManifest.xml文件

在AndroidManifest.XML文件中添加配置

1 修改application节点下

1 修改android:icon属性值为@drawable/icon
2 删除android:theme属性
3 删除allowBackup属性
4 添加android:largeHeap=“true”
5 添加 android:name=“io.dcloud.application.DCloudApplication”
6 添加android:allowClearUserData=“true”

<application  
    android:allowClearUserData="true"  
    android:icon="[@drawable](/user/drawable)/icon"  
    android:label="@string/app_name"  
    android:largeHeap="true"  
    android:name="io.dcloud.application.DCloudApplication" >

2 添加文件支持的屏幕旋转方向

3 添加最低支持系统版本,5 sdk支持的最低系统版本为8,(注意:不要填写targetSDKVersion参数)

4 添加5 SDK必需引用的系统权限

<supports-screens
    android:anyDensity="true"
    android:largeScreens="true"
    android:normalScreens="true"
    android:resizeable="true"
    android:smallScreens="true"
/>
<uses-sdk android:maxSdkVersion="8"/>
<uses-permission android:name="android.permission.INTERNET"/>
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
<uses-permission android:name="android.permission.GET_TASKS"/>
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>

5 删除文件中原来配置的Activity

6 添加5 内核需要的Activity和service到AndroidManifest.xml文件

<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:configChanges="orientation|keyboardHidden|screenSize|keyboard|navigation|mcc|mnc|fontScale"
    android:hardwareAccelerated="true"
    android:label="5+Debug"
    android:launchMode="singleTask"
    android:screenOrientation="user"
    android:theme="@style/DCloudTheme"
    android:windowSoftInputMode="adjustResize" >
</activity>
<service
    android:name="io.dcloud.common.adapter.io.MiniServerService"
    android:exported="true" />

5 修改工程使用的源码

1 删除创建工程时自动生成的源码。工程中使用5 SDK默认的Activity作为应用的入口Activity,所以如果没有原生开发的需求,则可以删除自动生成的源码文件。

2 在java目录下添加io.dcloud包

3 拷贝SDK\src\io\dcloud\Rinfomation.java文件到工程的io.dcloud包下

4 根据工程的包名修改Rinfomation.java的import资源的包名,

如果需要引入NativeUI.模块需要import io.dcloud.feature.ui.nativeui.NativeUIR;, 并且RInformation类需要implements NativeUIR类

如果需要引入gallery模块(图片选择)需要import io.dcloud.js.gallery.GalleryR;, 并且RInformation类需要implements GalleryR类

6 添加Web应用资源到工程

1 在assets目录下创建apps/[appid]/www目录,将web应用拷贝到www目录下,【APPID】为Web应用mainfest.json文件id节点的内容。

注意:应用存放的目录是有层级的,目录千万不要命名成apps.[appid].www不要被as的表现迷惑,新建的目录类型为Android resource directory

2 修改src/main/assets/data/control.xml文件成dcloud_control,xml(目录下的三个文件都要加个dcloud_前缀,不然引用不了权限),修改app节点的appid属性和appver属性的值。appid属性填写Web应用的mainfest.json文件的ID节点内容,appver属性填写manifest.json文件的version节点下的name节点的内容。

注意:dcloud_control.xml文件配置的appid和应用所在目录和web应用的manifest.json文件的id节点必须一致,否则会导致应用无法启动

7 修改APK桌面显示的图标和Splash图片

将应用的图标(文件名为icon.png)启动图片(文件名为splash.png)按照对应的尺寸拷贝到工程的app->src->main->res -> drawable-XXX目录下:

8 修改APK桌面显示的应用名

打开app->src->res->values->strings.xml文件,修改string节点对应的内容即可修改apk在手机桌面上显示的应用名称

运行时如果提示“打包时未添加XXX模块”,请参考SDK/Feature-Android.xls文件,查找对应插件名需要引入的5+库文件和系统库文件,添加到工程即可

最简工程Androidmanifest.xml文件示例(注意包名需要修改)

转自(http://ask.dcloud.net.cn/article/924)


1 回复

了解你的需求,下面是一个关于如何创建最精简的uni-app离线打包Android工程的代码案例。这个示例将指导你如何设置基本的uni-app项目,并配置Android离线打包环境。

步骤一:创建uni-app项目

首先,你需要确保已经安装了HBuilderX编辑器,这是uni-app的官方开发工具。

  1. 打开HBuilderX,选择文件 -> 新建 -> 项目
  2. 选择uni-app项目模板,填写项目名称和路径,点击创建

步骤二:配置manifest.json

在项目的根目录下找到manifest.json文件,这是uni-app的配置文件。你需要配置应用的基本信息和App平台配置。

{
  "mp-weixin": {},
  "app-plus": {
    "name": "MyUniApp",
    "version": {
      "name": "1.0.0",
      "code": "100"
    },
    "distribute": {
      "sdkConfigs": {}
    }
  },
  // 其他配置...
}

步骤三:编写基本页面

pages目录下,你会看到一个默认的页面index。你可以编辑这个页面或者添加新的页面。

例如,编辑pages/index/index.vue

<template>
  <view class="content">
    <text>Hello, Uni-App!</text>
  </view>
</template>

<script>
export default {
  data() {
    return {
      // 数据
    }
  }
}
</script>

<style>
.content {
  display: flex;
  justify-content: center;
  align-items: center;
  height: 100vh;
}
</style>

步骤四:配置Android离线打包

  1. 在HBuilderX中,选择发行 -> 原生App-云打包 -> 制作自定义基座
  2. 选择Android平台,并配置相关信息,如应用名称、包名等。
  3. 下载生成的自定义基座APK,并安装到你的Android设备上。
  4. 使用HBuilderX的运行到手机或模拟器功能,选择运行到自定义基座,将应用部署到你的Android设备上。

步骤五:优化与打包

确保你的应用已经过优化,移除不必要的文件和代码。然后,你可以使用HBuilderX的发行 -> 原生App-云打包 -> 正式打包功能,进行离线打包。

这个示例提供了一个基本的uni-app项目结构,并展示了如何配置Android离线打包环境。你可以根据自己的需求进一步扩展和优化你的项目。希望这个代码案例对你有所帮助!

回到顶部