我認為學習需要靠交流,,我把我的一點心血發(fā)上來,,希望可以促進大家交流 剛學android一個月,,由于是在windows xp上開發(fā)的,,也不會makefile,,ndk還沒仔細研究,或許對一些初學者有用。 一,、Android Apk簽名 Apk簽名首先要有一個keystore的簽名用的文件,。 keystore是由jdk自帶的工具keytool生成的。 具體生成方式參考: 開始->運行->cmd->cd到你安裝的jdk的目錄里,,我的是C:\Program Files\Java\jdk1.6.0_10\bin 然后輸入: keytool -genkey -alias asaiAndroid.keystore -keyalg RSA -validity 20000 -keystore asaiAndroid.keystore -alias 后面跟的是別名這里是 asaiAndroid.store -keyalg 是加密方式這里是RSA -validity 是有效期 這里是20000 -keystore 就是要生成的keystore的名稱 這里是asiAndroid.keystore 然后按回車鍵 按回車后首先會提示你輸入的密碼:這個在簽名時要用的,,要記住 然后會再確認你的密碼。 之后會依次叫你輸入姓名,、組織單位,、組織名稱、城市區(qū)域,、省份名稱,、國家代碼(CN)等。 開始簽名,。 在 C:\Program Files\Java\jdk1.6.0_10\bin 還提供一個工具 jarsigner.exe 運行命令給APK簽名: jarsigner -verbose -keystore asaiAndroid.keystore -signedjar Lotteryonline_signed.apk LotteryOnline.apk asaiAndroid.keystore -keystore: keystore的名稱 LotteryOnline_signed.apk: 簽名后的APK LotteryOnline.apk: 簽名前的APK 然后按回車:會要求輸入剛才設置的密碼,,輸入后按回車就開始簽名了。 二,、eclipse源碼編譯,,無需用make來編譯(android源碼目錄<D:\myandroid_mx27>): 1、首先,,AndroidManifest.xml中manifest節(jié)點中加入android:sharedUserId="android.uid.system"這個屬性 2,、用eclipse編譯出apk(ClockSetting.apk)文件,但這個文件不能用,,刪掉META-INF目錄下的CERT.SF和CERT.RSA兩個文件 3,、使用當前android系統(tǒng)(android系統(tǒng)可能不同)的platform密鑰來重新給apk文件簽名(可能還未用用戶米要簽名)。 首先,找到密鑰文件,,在我的Android源碼目錄中的位置是"build\target\product\security",下面的platform.pk8和platform.x509.pem兩個文件,。 然后,用Android提供的SignApk工具來簽名,,signapk的源代碼是在"build\tools\signapk"下,,這時得為下面的編譯工作做些準備: <1>、編譯jar 命令行cd到signapk.java代碼目錄下,, javac signapk.java 獲取SignApk$SignatureOutputStream.class和SignApk.class 建立目錄s\com\android\signapk,將兩個class文件放入目錄下 jar cvfm signapk.jar SignApk.mf -C s\ . 注意:"s\"后面的"."前面有空格 生成signapk.jar文件,,得到了Android提供的簽名程序signapk.jar <2>、用目標系統(tǒng)的platform密鑰簽名 將platform.pk8和platform.x509.pem文件復制到"D:\myandroid_mx27\build\tools\signapk"目錄下,,即signapk.jar和SignApk.mf所在的目錄,。 java -jar signapk.jar platform.x509.pem platform.pk8 D:\ClockSetting.apk D:\ClockSettingSigned.apk 我的未簽名(ClockSetting.apk)和已簽名(ClockSettingSigned.apk)apk文件都放在D盤,這樣就得到了用Android源碼編譯的文件。 <3>,、打開真機,,安裝: adb connect IP:Port (IP為真機IP地址,,Port為端口) adb install D:/ClockSettingSigned.apk |
|