之前用Ionic+Angular做了幾個小應用Demo,現在用其中一個做實驗試下打包安卓的APK安裝包。(備注:我用的應用demo是之前博客里寫的匯率的Demo,不清楚的同學可以查哈~)
我是用ionic start創建的項目,在我的platforms里默認的只有IOS的平台,所以我要先安裝上Android平台。
打開終端,進入到項目文件夾內,執行命令:$ ionic platform add android,之后等待添加完成。
第一步:先創建應用圖標和啟動圖片
應用圖標最少要1024px*1024px大小,啟動圖標最少要2208px*2208px,都要png-8格式的就可以了。做好圖片后,我們把圖標命名為icon.png,啟動圖片命名為splash.png,把這兩張圖片放到項目resources文件夾目錄下,然后在android和ios文件夾目錄下也各放一份,之后在終端執行命令:$ ionic resources,然后就會生成不同尺寸的圖片。
(注:ionic resources命令默認會將圖標和啟動圖片都生成不同尺寸的圖片,如果像分別生成,可以執行ionic resources icon生成圖標,執行ionic resources --splash生成啟動圖片)
第二步:優化項目文件
應用體積越小越好,所以我需要把項目里非必要的文件都清除掉。
① 移除Cordova Console插件
運行命令查看cordova插件列表:$ cordova plugin list
看到我們需要刪除的插件:
運行刪除插件的命令:$ cordova plugin rm cordova-plugin-console
執行成功:
② 移除所有不需要的文件
③ 移除庫中不使用的文件
④ 壓縮代碼
⑤ 壓縮圖片
第三步 安裝JDK 配置JAVA環境
下載JDK:http://www.oracle.com/technetwork/java/javase/downloads/index.html
下載文件后,雙擊安裝:
安裝完成后點擊關閉:
在終端運行命令:$ java -version,檢測是否成功:
還可以在命令提示符中輸入“javac”,能夠出現用法提示,證明安裝成功。
第四步 安裝Android SDK Tools
需要下載兩個工具:sdk tools和更新完的sdk的adt版本
sdk tools下載地址:http://www.androiddevtools.cn/
解壓后命令行進入tools目錄:$ cd android-sdk-macosx/tools/
輸入命令:$ ./android sdk,然后我們會看到Android SDK Manager圖形界面
從菜單欄Android SDK Manager 進入Preferences,進行如下配置:
然后從菜單Tools進入Manage Add-on Site:
然后把下面的網址手動new進去:
http://mirrors.neusoft.edu.cn/android/repository/addon-6.xml
http://mirrors.neusoft.edu.cn/android/repository/addon.xml
http://mirrors.neusoft.edu.cn/android/repository/extras/intel/addon.xml
http://mirrors.neusoft.edu.cn/android/repository/sys-img/android-tv/sys-img.xml
http://mirrors.neusoft.edu.cn/android/repository/sys-img/android-wear/sys-img.xml
http://mirrors.neusoft.edu.cn/android/repository/sys-img/android/sys-img.xml
http://mirrors.neusoft.edu.cn/android/repository/sys-img/google_apis/sys-img.xml
http://mirrors.neusoft.edu.cn/android/repository/sys-img/x86/addon-x86.xml
http://mirrors.neusoft.edu.cn/android/repository/addons_list-2.xml
http://mirrors.neusoft.edu.cn/android/repository/repository-10.xml
然后建議勾選下面打框的選項,之后進行安裝就可以啦(Android版本我隨便選了幾個,不用選太低的版本):
然后設置Android環境變量:
打開終端,進入android sdk安裝目錄:
輸入命令:$ touch .bash_profile
輸入命令:open -e .bash_profile
打開.bash_profile添加路徑(我的路徑哈):
export ANDROID_HOME=/Users/jiangwei/Desktop/android-sdk
export PATH=${PATH}:$ANDROID_HOME/tools:$ANDROID_HOME/platform-tools
保存文件並關閉
然后輸入命令:$ source .bash_profile
在終端輸入命令 adb點回車,如果未顯示command not found,說明此命令有效,環境變量設置完成。
第五步 配置應用簽名
回到應用項目目錄下:
運行命令:$ keytool -genkey -v -keystore know_your_brew.keystore -alias know_your_brew -keyalg RSA -keysize 2048 -validity 10000
注意:使用你應用的名字來替代know_your_brew
,這個命令會生成一個新的文件,在本示例中為know_your_brew.keystore。
第六步 使用Cordova編譯應用文件
使用build命令編譯一個應用的發布版本:
終端進入到項目目錄下,執行命令:$ cordova build --release android
該命令會生成一個新的APK文件,命令會返回編譯后的APK文件的絕對地址,如下圖所示:
第七步 簽名應用文件
現在我們來使用之前創建的keystore文件來簽名已生成的未簽名版本的應用。
(我們先把已經生成的apk文件移到項目根目錄下,不然可能會報錯"無法打開 jar 文件: android-release-unsigned.apk")
終端執行命令:
$ jarsigner -verbose -sigalg SHA1withRSA -digestalg SHA1 -keystore exr.keystore android-release-unsigned.apk exr
過程會需要一點時間,期間會提示輸入keystore的密碼密鑰,命令會修改apk文件並對其進行簽名。
可以使用命令$ jarsigner -verify -verbose -certs apk文件名,來驗證應用是否簽名成功。
第八步 優化APK文件
優化APK文件,使其減少在設備上占用的空間和內存。我們使用zipalign工具,它使用簽名后的APK文件生成一個優化后的APK版本,用於應用上傳。
在android-sdk目錄里,我搜到zipalign的命令的地址是:./build-tools/25.0.2下面,從終端進入android-sdk目錄下,執行命令:
$ open -e .bash_profile
打開.bash_profile文件,添加zipalign環境變量:export PATH=${PATH}:$ANDROID_HOME/tools:$ANDROID_HOME/build-tools/25.0.2
保存關閉文件
執行命令:$ source .bash_profile
然后返回到應用項目文件夾目錄下,執行命令:
$ zipalign -v 4 android-release-unsigned.apk MyExrApp.apk
完成后會返回
至此,android APK文件已經生成並完成簽名和優化,可以將它發到手機上就可以下載安裝了,如果想要將它發布到應用商店,那就需要去應用商店注冊開發者賬戶,將其提交到Android應用商店中。