Uni App系列001:離線打包Apk

一、下載最新SDK

在 Dcloud裡下載最新的SDK

下載解壓後目錄如下

Uni App系列001:離線打包Apk

HBuilder-Hello:是HelloH5打包App的示例,可以用AS打包成APK
HBuilder-Integrate-AS:是HBuilder 5+ SDK 集成AS的示例
SDK:是HBuilder SDK庫文件
UniPlugin-Hello-AS:是開發插件並集成到Vue的示例

二、在AS裡打開HBuilder-Hello項目

測試打包這個項目為APK,這個項目可以直接打包為APK,有50多M

三、複製HBuilder-Hello項目為my-hello

複製如下目錄文件到my-hello目錄

Uni App系列001:離線打包Apk

然後刪除如下目錄

Uni App系列001:離線打包Apk

再刪除如下目錄

Uni App系列001:離線打包Apk

再清理如下目錄文件,保留如下圖2的文件

Uni App系列001:離線打包Apk

Uni App系列001:離線打包Apk

注:

第1個文件:如果不要,則用HBuilderX新建的hello-uni-app打包後底部的tabs出不來

第3個文件:如果不要,則用HBuilderX新建的hello-uni-app打包後一直卡在啟動屏,進入不了uni-app的頁面

四、用HBuilderX新建hello-uni-app項目

如下生成uni app項目

Uni App系列001:離線打包Apk

如下生成本地資源

Uni App系列001:離線打包Apk

Uni App系列001:離線打包Apk

複製上圖的resources到如下圖目錄,改名myUniAppHello

Uni App系列001:離線打包Apk

五、在AS裡打開my-hello項目

1)AndroidManifest.xml,注意下面的:package="com.ntc.myhello"


<manifest> xmlns:tools="http://schemas.android.com/tools"
package="com.ntc.myhello">
<application> android:name="io.dcloud.application.DCloudApplication"
android:allowClearUserData="true"

android:icon="@drawable/icon"
android:label="@string/app_name"
android:largeHeap="true"
android:debuggable="true">
<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>
<category>
/<intent-filter>
/<activity>
/<application>
/<manifest>

2)dcloud_control.xml, 注意下面的appid為myUniAppHello

<hbuilder>
<apps>

/<apps>
/<hbuilder>

3)manifest.json,注意下面的 id為myUniAppHello

{
"@platforms": [
"android",
"iPhone",
"iPad"
],
"id": "myUniAppHello",
"name": "hello-app",
"version": {
"name": "1.0.0",
"code": "100"
},

"description": "應用描述",
"launch_path": "__uniapptabbar.html",
"developer": {
"name": "",
"email": "",
"url": ""
},
"permissions": {
"OAuth": {},
"Payment": {},
"Push": {},
"Share": {},
"Speech": {},
"VideoPlayer": {},
"UniNView": {
"description": "UniNView原生渲染"
}
},
"plus": {
"useragent": {
"value": "uni-app appservice",
"concatenate": true
},
"splashscreen": {
"target": "id:1",
"autoclose": true,
"waiting": true,
"delay": 0
},
"popGesture": "close",
"launchwebview": {},
"statusbar": {
"immersed": "supportedDevice",
"style": "dark",
"background": "#F8F8F8"
},
"usingComponents": true,
"nvueCompiler": "uni-app",
"allowsInlineMediaPlayback": true,
"safearea": {
"background": "#F8F8F8",
"bottom": {
"offset": "auto"
}
},
"uni-app": {
"compilerVersion": "2.3.3",
"control": "v8",
"nvueCompiler": "uni-app",
"renderer": "auto",

"nvue": {
"flex-direction": "column"
}
}
}
}

4)build.gradle (moudle app),注意下面的 applicationId "com.ntc.myhello"

apply plugin: 'com.android.application'
android {
compileSdkVersion 26
buildToolsVersion '28.0.3'
defaultConfig {
applicationId "com.ntc.myhello"
minSdkVersion 19
targetSdkVersion 23
versionCode 1
versionName "1.0"
multiDexEnabled true
ndk {
abiFilters 'x86','armeabi-v7a'
}
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
lintOptions {
checkReleaseBuilds false
abortOnError false
}
//使用uniapp時,需複製下面代碼
/*代碼開始*/
aaptOptions {
additionalParameters '--auto-add-overlay'
//noCompress 'foo', 'bar'
ignoreAssetsPattern "!.svn:!.git:.*:!CVS:!thumbs.db:!picasa.ini:!*.scc:*~"
}
/*代碼結束*/
}
repositories {
flatDir {

dirs 'libs'
}
}
dependencies {
implementation fileTree(include: ['*.jar'], dir: 'libs')
implementation fileTree(include: ['*.aar'], dir: 'libs')
implementation 'com.android.support:appcompat-v7:26.1.0'
implementation 'com.android.support.constraint:constraint-layout:1.1.3'
/*uniapp所需庫-----------------------開始*/
implementation 'com.android.support:recyclerview-v7:26.1.0'
implementation 'com.alibaba.android:bindingx-core:1.0.3'
implementation 'com.alibaba.android:bindingx_weex_plugin:1.0.3'
implementation 'com.squareup.okhttp:okhttp:2.3.0'
implementation 'com.squareup.okhttp:okhttp-ws:2.3.0'
implementation 'com.alibaba:fastjson:1.1.46.android'
implementation 'com.facebook.fresco:fresco:1.13.0'
implementation "com.facebook.fresco:animated-gif:1.13.0"
/*uniapp所需庫-----------------------結束*/
// 基座需要,必須添加
implementation 'com.github.bumptech.glide:glide:4.9.0'
}

上述完成後編譯通過後,就可以打包apk了,打包後18多M


分享到:


相關文章: