編輯:關於Android編程
從事Android開發的小伙伴們,想必都會遇到這樣的問題。當你的應用中需要集成百度地圖、極光推送等第三方平台時,會去申請一個叫做AppKey的東西。與此同時,你得提供下應用簽名信息的MD5或SHA1。然後就悲催的發現,只有用指定的簽名文件打包時,該功能才能正常使用。如果你用的是開發工具的debug keystore簽名信息,直接run一下就好,如果你用的是APP發布時候的keystore,每次測試時都得export 一個apk。心中一萬只草泥馬在奔騰的有木有?
樓主之前的小伎倆就是,去申請兩個AppKey,分別對應debug keystore 和 release keystore。然後在心中默默地為自己的機智點個贊。然而一些比樓主更聰明的小伙伴發現,eclipse裡面可以替換簽名文件。於是滿懷欣喜的去指定一個keystore,期待這樣的畫面(注意我此處的md5和sha1):
然而看到的是這樣的:
小伙伴的內心應該是崩潰的。
簽名文件(keystore)
在生成簽名文件時候,輸入的最重要的三條信息是:store password、key alias、key password。有過用eclipse export apk 經驗的童鞋應該很清楚這三個信息的作用。
此時應該很好理解之前的錯誤了,因為指定debug keystore時,eclipse根本沒讓輸入以上三個信息。我也就呵呵一笑了……再看默認的debug keystore,會有一種錯覺,該簽名文件沒有密碼。
然而,事實並不是如我們所想的那樣。默認的debug keystore的三個信息如下:
store password:android key alias:androiddebugkey key password:android
並且,eclipse 的debug keystore只認含有這三個信息的keystore。
修改簽名文件
已經知道了錯誤原因,那麼接下來的解決方案只能嘗試著去修改keystore裡的這三個信息了。總不能去重新生成一個包含這個三個信息的keystore吧?然並卵……
修改之前,先查看一下keystore裡的信息:
注意此處的MD5和SHA1與之前截圖的一致。
查看keystore信息:keytool -list -v -keystore “keystore 文件” -storepass “keystore 密碼”
將上述三個信息,分三步修改。比較坑爹的是,此處只能用命令玩了(修改之前,記得將原有的簽名文件備份)。
修改store password。
命令:keytool -storepasswd -keystore “keystore 文件”。
會提示輸入舊的密碼,再輸入兩次新密碼,此時將新密碼改成android。
修改key alias。
命令:keytool -changealias -keystore “keystore 文件” -alias “keystore 別名” -destalias “目的別名”。
將目的別名改成:androiddebugkey,會提示輸入第一個密碼,就是第一步改過的android,第二個密碼是之前的key password。
修改key password。
命令:keytool -keypasswd -keystore “keystore 文件” -alias “指定修改密碼的別名”
由於,一個keystore中,可以存儲多個alias,因此此處需要指定修改密碼的alias(這裡應當是androiddebugkey),然後需要輸入store password:android(修改後的)。再輸入舊的key password(之前只是修改了alias :androiddebugkey)。最後輸入兩次新的key password:android。
最後,再次查看簽名文件信息:
輸入的密鑰庫口令,已經是修改之後的android,alias 也已經修改成androiddebugkey。現在就可以放在eclipse裡面替換了。
強大的AndroidStudio
看到這裡,心很累了有木有?感覺eclipse是無比的坑爹。很好奇,AndroidStudio是怎麼實現這個功能的,那麼接下來的操作,也許會讓你驚呆。
第一步,添加一個簽名文件配置信息。選擇keystore,並輸入store password、key alias,key password。
第二步,在debug模式中,選擇之前添加的簽名文件配置信息。
也可以直接在gradle中配置。
然後,就沒然後了。對Studio 只有一個評價,android開發神器。沒有之一……
不說了,我去卸載eclipse。
多虧了<include />標簽,在Android裡,很容易就能做到共享和重用UI組件。在Android開發中,很容易就能創建出復雜的UI結構,結果呢,用了很
為什麼要使用異步任務?Android 單線程模型,多線程的操作系統耗時操作放在非主線程中運行AsyncTask 為何而生?子線程中更新UI封裝簡化異步操作構建AsyncT
今天看了鴻洋_大神在慕課網講的qq5.0側滑菜單。學了不少的知識,同時也佩服鴻洋_大神思路的清晰。看了教程課下也自己實現了一下。代碼幾乎完全相同 別噴我啊。。沒辦法 o(
ActionBar是3.0後的UI設計規范,同時也是Google極力推薦使用的設計風格,如何快速設計一個入眼的ActionBar呢,更進一步,給我們搭好一個入眼的Acti