簽名打包的兩種方式:
注:給我們自己開發的app簽名,就代表着我自己的版權,以后要進行升級,也必須要使用相同的簽名才行。簽名就代表着自己的身份(即keystore),多個app可以使用同一個簽名。
如果不知道簽名是啥意思,請自行百度哦。在eclipse中簽名的方法是:選中工程,郵件選擇"export-android-export android application",
1、方式1:通過Android Studio進行簽名:
選中app這個module,選擇菜單欄"Build-Generate signed apk":
彈出如下界面:
上圖中,如果你是第一次使用簽名,就單擊紅框部分創建一個新的簽名;如果你之前有過簽名的文件,就選擇藍框部分進行導入即可。那我就先選擇紅框部分吧:
上圖中,點擊"finish"之后,可以看到Android Studio的最下方顯示:Gradle正在執行assembleRelease這樣一個任務,如下圖所示:
生成簽名好的apk之后,會彈出提示:
2、方式2:通過命令行的方式進行簽名:
(1)加載Key Store:
我們先刪掉上面的通過第一種方式所簽名的apk文件。接下來進行第二種方式來簽名,即命令行的方式。
打開Project Stucture圖形化界面:
上圖中,選中app這個module,然后切換到singning標簽欄,緊接着點擊添加,然后生成release簽名信息,緊接着點擊"OK"。接着做如下操作:
上圖中,切換到Build Types標簽,將Signing config選擇為"release",即將剛剛生成的release簽名信息配置進去。
操作完成之后,我們可以看到app這個module的build.gradle文件多出了如下紅框部分的代碼:
然后執行菜單欄的"build-clean Project":
(2)生成realease版本的apk:
緊接着在命令行Terminal輸入如下命令:(AS已經將命令行Terminal集成到了軟件當中)
gradlew assembleRelease
如果運行成功,效果如下:
生成的簽名好的apk在如下位置:
3、為什么要使用gradlew命令而不是gradle命令:
在HelloWorld工程目錄下有一個gradle文件夾,在gradle/wrapper目錄下有一個gradle-wrapper.properties文件,打開它:
上圖代表着HelloWorld這個工程所依賴的gradle的版本信息。上圖的紅線表示,如果我們的工程中沒有gradle,軟件會根據這個url去下載gradle,終於知道為啥第一次打開AS時會這么慢了吧?
如果我們執行了gradlew命令,實際上是執行上面的gradle wrapper,然后找到我們已經下載好的gradle 2.2.1。如果現在有很多個工程,但是每個工程的gradle版本都不一樣,我就必須要將每個版本的gradle都要配置到環境變量當中,而執行了gradlew命令,就會避免這個麻煩。