編輯:關於Android編程
Android系統要求所有的程序經過數字簽名才能安裝,如果沒有可用的數字簽名,系統將不許安裝運行此程序,不管是模擬器還是真實手機。因此,在設備或者是模擬器上運行調試程序之前,必須為應用程序設置數字簽名。Android系統僅僅會在安裝的時候測試簽名證書的有效期,如果應用程序的簽名在安裝之後過期,那麼應用程序仍然可以正常啟用。
Android通過數字簽名來標識應用程序的作者和在應用程序之間建立信任關系,不是用來決定用戶可不可以安裝該應用程序。android的這個簽名由應用程序的作者完成,並不需要權威的數字證書簽名機構認證,他只是用來讓應用程序包自我認證的。
當用Eclipse打包測試時,ADT會自動使用debug密鑰為應用程序簽名,debug密鑰是一個名為debug.keystore的文件,位於電腦的:
/userName/.Android/debug.keystore,其中的userName是電腦的用戶名。
工程的bin目錄下的apk包就是使用debug密鑰做簽名的包,所以理論上是不能用這個包做上線發布的。
整個過程涉及到幾個工具:
最簡單的方法是直接使用Eclipse的功能完成這一系列操作:
右擊工程->Android Tools->Export signed Application package,選擇使用現有的keystore簽名、創建新的keystore簽名。有幾個關鍵信息需要記住:
輸入正確的keystore信息就可以輸出一個打包過的apk包了。
沒錯。。。說的就是我自己。
第一次發布時,直接從bin目錄拷出apk包,並把這個包發布。這樣就是使用debug.keystore簽名、並上線了應用,我想發生這種情況都是因為不太了解Android應用程序簽名相關的細節。
當發現了以後,希望使用一個自己生成的“正規的”keystore再更新應用。因為更換了keystore,那麼安裝包的簽名就變了。用戶更新應用時,會在安裝過程中報錯。安裝過程中系統檢測到程序的簽名不一致,認為安裝包有風險(可能被篡改),安裝失敗,需要卸載原應用重新安裝。這樣的問題很嚴重!!!
一個字,改!!!
找到debug.keystore文件,事實上你只要保存這個.keystore,今後都使用默認key做應用程序簽名並更新也是可以的,一點問題沒有。只是默認密碼會有點不安全。
debug.keystore默認信息為:
alias : androiddebugkey
storepass&keypass : andriod
只需要使用keytool,把debug.keystore的alias、storepass、keypass修改為我們想要的值即可。
修改alias:
keytool -changealias -alias your-very-very-long-alias -destalias new-alias -keypass keypass -keystore /path/to/keystore -storepass storepass
修改storepass:
keytool -storepasswd -keystore /path/to/keystore
Enter keystore password: changeit
New keystore password: new-password
Re-enter new keystore password: new-password
android 中的 日歷控件 public class MainActivity extends Activ
Lambda是第十一個希臘字母,大寫Λ,小寫λ,額,跑題了…Lambda表達式 是Java8的新特性之一: Lambda表達式 函數式接口 流API 默認方法
在微信的運營過程中難免會出現一些無法預料的事情,比如在朋友圈被惡評,甚至被某些別有用
最近寫Demo,突然發現了Layout_weight這個屬性,發現網上有很多關於這個屬性的有意思的討論,可是找了好多資料都沒有找到一個能夠說的清楚的,於是自己結合網上資