uni-app Android オフライン パッケージ化

AndroidStudio プロジェクトを作成する

1.1 では、前のセクションでユニアプリのクラウド パッケージ化を説明しました。次に、androidStudio をオフラインでパッケージ化する方法を説明します。AndroidStudioで新しい空のプロジェクトを作成する

1.2. ユニアプリ オフライン SDK をダウンロードします。オフライン SDK は主に、アプリのローカル オフライン パッケージ化とネイティブ機能の拡張に使用されます。SDK のダウンロード リンクは https://nativesupport.dcloud.net.cn/AppDocs/download です。 /android.html#

1.3、SDK ディレクトリの説明

    |-- HBuilder-Hello App オフライン パッケージング デモ アプリケーション
    |-- ユニアプリを統合する HBuilder-Integrate-AS の最も単純な例
    |-- SDK SDK ライブラリ ファイル ディレクトリ
    |-- 各拡張機能 API に対応する Feature-Android.xls Android プラットフォーム 詳細設定
    |-- Readme.txt バージョン記述ファイルと注意事項
    |-- UniPlugin-Hello-AS ユニネイティブプラグイン開発例

1.4、SDK ディレクトリ、androidStudio は後で SDK 内のリソースを使用する必要があります

1.5 では、AndroidStudio が uni-sdk を構成し、uni-sdk 基本 arr パッケージを AndroidStudio の libs ディレクトリにコピーします。

lib.5plus.base-release.aar

[email protected]

uniapp-v8-release.aar

oaid_sdk_1.0.25.aar

インストール-apk-release.aar

ブレークパッド-ビルド-リリース.aar

1.6、アセットのデータ ディレクトリを androidStudio のアセットにコピーします

1.7 では、アプリ ディレクトリ内の build.gradle 設定プロジェクトは依存関係に依存しており、AndroidX バージョンでは次のリソースを追加する必要があります。

実装 fileTree(include: ['*.jar'], dir: 'libs')
実装 fileTree(include: ['*.aar'], dir: 'libs')
実装 'androidx.appcompat:appcompat:1.0.0'
実装「androidx.legacy:legacy-support-v4:1.0.0」
実装「androidx.recyclerview:recyclerview:1.0.0」
実装「com.facebook.fresco:fresco:2.5.0」
実装「com.facebook.fresco: anime-gif:2.5.0」
実装「com.github.bumptech.glide:glide:4.9.0」
実装「com.alibaba:fastjson:1.2.83」
実装「androidx.webkit:webkit:1.3.0」

1.8 では、uni-app を構成するときに build.gradle に aaptOptions 構成を追加する必要があります

aaptOptions {  
    AdditionalParameters '-auto-add-overlay'ignoreAssetsPattern  
    "!.svn:!.git:.*:!CVS:!thumbs.db:!picasa.ini:!*.scc:*~"  
}  
 

1.9 では、androidStudio 設定が aar 読み込みをサポートし、新旧の Gradle ビルド ツールの aar 設定が変更されました。

古いバージョンはアプリの build.gradle で構成されています

新しいバージョンは、プロジェクトのルート ディレクトリの build.gradle または settings.gradle というウェアハウス レベルで構成されます。

1.10、アプリの build.gradle で aar を参照

2. uni-app プロジェクトはアプリのリソースをパッケージ化します

2.1 appkey を取得し、開発者プラットフォームにログインして開発者として登録します ( https://dev.dcloud.net.cn/ )

2.2 作成したばかりの uni-app プロジェクトを見つける

 2.3 証明書の作成

2.3 証明書を表示し、オフライン パッケージ化キーに使用される SHA1 値をコピーします。

2.4 オフラインパッケージキー管理をクリックすると、各プラットフォーム情報設定にジャンプし、sha1、MD5、SHA256、パッケージ名を設定します。

 appid は、androidStudio プロジェクトの applicationId です。

2.5 プラットフォーム情報を送信した後、キーを作成できます

作成後に確認してください AppKey はデバッグモードとリリースモードを区別していませんので、Android でデバッグが必要な場合は AppKey 申請時に証明書を使用する必要があります。

2.6 ユニアプリ リソース パッケージのパッケージ化、ディストリビューション ネイティブ アプリのローカル パッケージ化 - アプリ リソースの生成

 パッケージ化の進行状況をコンソールで確認し、成功したら、ディレクトリを開いてディレクトリ全体を ID レベルでコピーします。

2.7 androidStudio アセット アプリ ディレクトリを作成し、アプリ リソース パッケージを androidStudio プロジェクトのアセット ディレクトリにコピーします。注意: dcloud_control.xml の appid は、対応する ID に変更する必要があります。

2.8 androidStudio プロジェクトの app-build.gradle も対応バージョンに変更されました。

3. androidStudio 設定キー

3.1 メイン APP の build.gradle ファイルの Android ノードでアプリケーションの署名情報を設定し、最初に証明書をダウンロードします

3.2 正式な署名とデバッグ署名の設定

signedConfigs {     config {         keyAlias '__uni__ee84bbf'         keyPassword 'slvjh2d2'         storeFile file('slvjh2d2.keystore') // パスは相対または絶対です         storePassword 'slvjh2d2'         v1SigningEnabled true // v1 と互換性あり         v2SigningEnabled true // v2 と互換性あり     } }








buildTypes {     release {         signedConfig signedConfigs.config         minifyEnabled false         proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'     }     debug {         signedConfig signedConfigs.config         minifyEnabled false         proguardFiles getDefaultProguardFile('proguard-android-optimize. txt')、'proguard-rules.pro'     }










3.3 Androidmanifest.xml 設定キー

<?xml version="1.0"coding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas .android.com/tools"> 

    <application
        ...>
        <meta-data
            android:name="dcloud_appkey"
            android:value="申請した Appkey に置き換えます" />
</manifest>

3.4 アプリケーションとマニフェストのアプリケーション エントリを構成するには、unisdk リソースを直接使用するだけです。

マニフェスト ファイル全体は次のとおりです。

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools">

    <application
        android:name="io.dcloud.application.DCloudApplication"
        android:allowBackup="true"
        android:dataExtractionRules="@xml/data_extraction_rules"
        android:fullBackupContent="@xml/backup_rules"
        android:icon="@mipmap/ic_launcher"
        android:label="@string/app_name"
        android:supportsRtl="true"
        android:theme="@style/Theme.UniApp"
        tools:targetApi="31">

        <!-- 应用入口 -->
        <activity
            android:name="io.dcloud.PandoraEntry"
            android:configChanges="orientation|keyboardHidden|screenSize|mcc|mnc|fontScale"
            android:exported="true"
            android:hardwareAccelerated="true"
            android:theme="@style/TranslucentTheme"
            android:windowSoftInputMode="adjustResize"
            tools:ignore="WrongManifestParent">
            <intent-filter>
                <data android:scheme="hbuilder" />
                <action android:name="android.intent.action.VIEW" />

                <category android:name="android.intent.category.DEFAULT" />
                <category android:name="android.intent.category.BROWSABLE" />
            </intent-filter>
            <intent-filter>
                <data android:mimeType="image/*" />
                <action android:name="android.intent.action.SEND" />
                <category android:name="android.intent.category.DEFAULT" />
            </intent-filter>
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>

        <meta-data
            android:name="dcloud_appkey"
            android:value="221fedc4b1f1f2087f96c7120ca8d3b9" />
    </application>
</manifest>

4 つのデバッグ実行とパッケージ化

4.1 テーマの競合エラーが発生する

次に、プロジェクト内の style.xml を削除し、マニフェスト ファイル内のアプリケーションのテーマを透明なテーマに変更します。

直す前に

 修正後

もう一度実行すると、インストールは成功します。 

4.2 インストール後、操作が失敗し、アクティビティ クラス エラーが報告されました。

そこでSDKのリストを見比べてみると、確かに登録されているクラスが1つ減っていたので登録します。

<activity
	android:name="io.dcloud.PandoraEntryActivity"
	android:launchMode="singleTask"
	android:configChanges="orientation|keyboardHidden|screenSize|mcc|mnc|fontScale|keyboard|smallestScreenSize|screenLayout|screenSize|uiMode"
	android:hardwareAccelerated="true"
	android:permission="com.miui.securitycenter.permission.AppPermissionsEditor"
	android:screenOrientation="user"
	android:theme="@style/DCloudTheme"
	android:windowSoftInputMode="adjustResize"
	android:exported="true">

	<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=" " />
	</intent-filter>
</activity>

4.3 再度実行すると、正常に実行できることがわかります。

 4.4 androidStudio がビルドを選択し、署名付きバンドル//Apk をパッケージ化する

4.5 証明書キーの選択

4.6 署名情報を入力する

4.7 正式なパッケージの作成を選択する

 4.8 OK、パッケージ化は成功しました

 4.9 公式 APK を携帯電話にインストールして正常に実行でき、オフライン パッケージ化が完了します。

4.10 主な手順

  • 新しい uni プロジェクトを作成して uni-appid を生成します
  • 開発者プラットフォームはキー証明書を生成し、アプリキーを生成します
  • uniプロジェクトのアプリリソースをエクスポートする
  • 新しい androidStudio プロジェクトを作成し、aar をコピーして、新しいアセット データを作成します
  • アプリのリソースを androidStudio の apps ディレクトリにコピーします
  • androidStudio プロジェクトのマニフェスト ファイルは、エントリと appkey を構成し、appid とバージョンを統合します
  • デバッグとパッケージ化して公式 APK を生成する

おすすめ

転載: blog.csdn.net/qq_29848853/article/details/132643481