當前位置:首頁 » 安卓系統 » apkandroidstudio

apkandroidstudio

發布時間: 2024-01-09 04:20:54

⑴ 請教如何使用android studio同時打包多個apk

問題:項目中不同的分發渠道可能需要打包多種APK(同樣的代碼),包名可能是不一樣的,如果一個一個修改包名重新編apk是很麻煩,可以參考下列步驟在Android Studio上操縱Gradle來打包不同包名的apk。
這里例子的目標是,同樣的代碼,打包成com.example.android.newsreader和com.example.android.newsreaderdev兩個不同包名的apk
1. 首先在build.gradle的android節點中加入下列代碼
proctFlavors{
flavors_release{
manifestPlaceholders = [str:"releaseStr",package_name:"com.example.android.newsreader"]
applicationId "com.example.android.newsreader"
}
flavors_dev{
manifestPlaceholders = [str:"devStr",package_name:"com.example.android.newsreaderdev"]
applicationId "com.example.android.newsreaderdev"
}
}

這個proctFlavors的功能即為打包的參數化而提供的,flavors_release和flavors_dev可以被視作自己定義的兩套變數集,實際操作中可以自定義
注意到這里有一個manifestPlaceholders的參數,裡面提供的實際上是幾個參數變數和值,這里的參數都可以通過${name}的方式在AndroidManifest.xml中使用。原來是想在AndroidManifest中的manifest的節點將package給參數化來達到打不同包名的apk的目的,即:
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="${package_name}"
android:versionCode="1"
android:versionName="1.0">
<uses-sdk android:minSdkVersion="11" android:targetSdkVersion="14" />
...

結果Android Studio的Lint自動給了我一個提示:
說明Android Studio推薦我採用設置applicationId的方式來將包名參數化
於是乎,我在flavors_release和flavors_dev中又加入了applicationId的設置,即:

下面看看是否有作用
2.這一步需要操縱Gradle面板
此時我們在Android Studio的右側的gradle面板中點擊按鈕刷新下,於是在build子欄目中出現下列東西:
其中以assemble*打頭的都是生成apk的選項,生成的apk在build/outputs/apk中,這里我們對任一項雙擊即可生成對應的apk
對應flavors_release和flavors_dev的apk應該就是和這兩個,於是分別雙擊他們等待各自生成apk的過程
3. 下面查看Project面板中的內容
打開project面板,我們發現真的出現了幾個apk:
可以看出來每次雙擊gradle中的一條會生成三個apk,我們把newsreader-flavors_dev-debug.apk和newsreader-flavors_release-debug.apk拿出來,用aapt命令查看下他們的包名(命令為aapt mp badging {filename.apk})
果然,包名是不一樣的。
那麼是否可以同時安裝呢,這里把兩個apk都安裝到模擬器中,果然是可以的:
可以看到出現了兩個NewsReader,其實都是一模一樣的,只是包名不同
4. 如何在打包的時候指定簽名
在Android Studio菜單欄進入Build->Generate Signed Apk:
指定你的keystore後點擊next:
這里會發現在Flavors裡面有兩個項目,即我們在gradle裡面配置上的兩個flavors參數集,各自選上,點擊finish即可生成所需要的apk
5. 有個疑問,為什麼修改applicationId即可修改包名呢?applicationID和packagename到底是什麼關系
實際上, package 代表了 java 代碼中的包名。 applicationId 代表了應用中的唯一標識。和應用簽名一起用來區別和其他應用不同。我想這也就是為什麼 Google 市場能夠允許相同應用不同 applicationId 的原因。
最後一個提示: 打包出來後,發布前最好要全面測試下,以免出現問題

⑵ Android studio怎麼生成簽名apk

1、生成你自己的jks文件

將下載好的keytool-importkeypair配置一下,其實主要就是配置一下環境變數,不熟悉的可以閱讀官方文檔,然後使用下面這條命令(需要在linux下,用windows的可以去在linux下生成jks,然後復制出新的jks回原目錄也可以)對jks文件引入系統簽名

./keytool-importkeypair -k [jks文件名] -p [jks的密碼] -pk8 platform.pk8 -cert platform.x509.pem -alias [jks的別名]

例如我的對應的就是:./keytool-importkeypair -k SignDemo.jks -p 123456 -pk8 platform.pk8 -cert platform.x509.pem -alias SignDemo

運行完這條命令之後,我們就得到了有系統簽名的jks

3、配置gradle(app)

在在android區域下(與defaultConfig同級)添加signingConfigs配置:

依次填寫jks的路徑,密碼,別名等

詳情介紹

⑶ android studio怎樣生成apk文件

1、連接上手機或者模擬器,運行一下你的程序

⑷ Android Studio 生成正式簽名apk(app-release.apk)的兩種方式

方式一:使用Android Studio生成

1.點擊Build->Generate,首次點擊可能會提示輸入操作系統密碼

2.彈出如下對話框,因為我們還沒有生成過keystore ,所以點擊Create new,新建keystore

3.填寫相關內容

Key store path 是 keystore的存放路徑
Alias 是別名,填寫APP名稱即可,別的名稱你記得住的也行

validity 是有效期限。
兩種密碼結合上一幅圖看

填寫完成後點擊ok
(記得備份,因為以後這個apk的新版本都是用這個keystore了)

4.彈出此窗口,自動填充好了這密碼和別名,Next

如果點擊了Remember passwords 可能需要輸入操作系統密碼。

5.填寫路徑,選擇簽名版本,點擊Finish

V2是Android 7.0出現的更安全更快速的簽名方式。

點擊ShowInExplore,或者自己打開路徑,就可以看到app-release.apk了
方式二:使用Gradle 生成

1.編輯 根目錄文件 gradle.properties

添加如下內容:

KEY_PATH=D:/Android/test1.jks
KEY_PASS=12345678
ALIAS_NAME=test
ALIAS_PASS=12345678
2.編輯 app/build.gradle 讀取指定的路徑密碼
在android 閉包中添加signingConfigs閉包:

android {
compileSdkVersion 25
buildToolsVersion "25.0.3"
defaultConfig {
applicationId "com.example.test"
minSdkVersion 16
targetSdkVersion 25
versionCode 1
versionName "1.0"
testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
}
signingConfigs {
config {
storeFile file(KEY_PATH)
storePassword KEY_PASS
keyAlias ALIAS_NAME
keyPassword ALIAS_PASS
}
}

在buildTypes release 閉包中添加 signingConfig signingConfigs.config 應用前面的簽名配置(ps:signingConfigs閉包必須在buildTypes閉包前)

buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
signingConfig signingConfigs.config
}
}

3.點擊右側工具欄的Gradle->項目名->:app->Tasks->build

assemble 用於生成測試版和正式版的apk

assembleDebug 用於生成測試版apk

熱點內容
編程主機電腦 發布:2024-11-29 00:43:51 瀏覽:983
oc訪問成員變數嗎 發布:2024-11-29 00:14:59 瀏覽:517
七牛雲伺服器生成縮略圖 發布:2024-11-29 00:12:36 瀏覽:272
如何重設華為賬號密碼 發布:2024-11-29 00:03:33 瀏覽:813
安卓聽小說下載到哪個文件夾 發布:2024-11-29 00:03:01 瀏覽:932
閑魚掛腳本 發布:2024-11-29 00:01:27 瀏覽:630
ae加快緩存 發布:2024-11-28 23:50:34 瀏覽:342
java的版本號 發布:2024-11-28 23:48:18 瀏覽:100
sql存儲過程區別 發布:2024-11-28 23:35:37 瀏覽:919
ms計算機需要什麼配置 發布:2024-11-28 23:34:21 瀏覽:975