• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>

            life02

              C++博客 :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理 ::
              197 隨筆 :: 3 文章 :: 37 評論 :: 0 Trackbacks
            http://blog.csdn.net/linghu_java/article/details/6701666
            Andriod應用程序如果要在手機或模擬器上安裝,必須要有簽名! 

            1.簽名的意義
              為了保證每個應用程序開發商合法ID,防止部分開放商可能通過使用相同的Package Name來混淆替換已經安裝的程序,我們需要對我們發布的APK文件進行唯一簽名,保證我們每次發布的版本的一致性(如自動更新不會因為版本不一致而無法安裝)。

            2.簽名的步驟
              a.創建key
              b.使用步驟a中產生的key對apk簽名

            3.具體操作

              方法一: 命令行下對apk簽名(原理)
              創建key,需要用到keytool.exe (位于jdk1.6.0_24jre\bin目錄下),使用產生的key對apk簽名用到的是jarsigner.exe (位于jdk1.6.0_24\bin目錄下),把上兩個軟件所在的目錄添加到環境變量path后,打開cmd輸入

                     D:>keytool -genkey -alias demo.keystore -keyalg RSA -validity 40000
                    -keystore demo.keystore
            /*說明:-genkey 產生密鑰
            -alias demo.keystore 別名 demo.keystore
            -keyalg RSA 使用RSA算法對簽名加密
            -validity 40000 有效期限4000天
            -keystore demo.keystore */
            D:>jarsigner -verbose -keystore demo.keystore -signedjar demo_signed.apk
                     demo.apk demo.keystore
            /*說明:-verbose 輸出簽名的詳細信息
            -keystore demo.keystore 密鑰庫位置
            -signedjar demor_signed.apk demo.apk demo.keystore 正式簽名,三個參數中
            依次為簽名后產生的文件demo_signed,要簽名的文件demo.apk和密鑰庫demo.keystore.*/

              注意事項:android工程的bin目錄下的demo.apk默認是已經使用debug用戶簽名的,所以不能使用上述步驟對此文件再次簽名。 正確步驟應該是:在工程點擊右鍵->Anroid Tools-Export Unsigned Application Package導出的apk采用上述步驟簽名。

              方法二:使用Eclipse導出帶簽名的apk
              Eclipse直接能導出帶簽名的最終apk,非常方便,推薦使用,步驟如下:
              第一步:導出。
             
              第二步:創建密鑰庫keystore,輸入密鑰庫導出位置和密碼,記住密碼,下次Use existing keystore會用到。
             
              第三步:填寫密鑰庫信息,填寫一些apk文件的密碼,使用期限和組織單位的信息。

              第四步:生成帶簽名的apk文件,到此就結束了。

              第五步:如果下次發布版本的時候,使用前面生成的keystore再簽名。


              第六步:下一步,下一步,然后就OK了!

              方法三:使用IntelliJ IDEA導出帶簽名的apk 
              
            方法步驟基本和Eclipse相同,大概操作路徑是:菜單Tools->Andrdoid->Export signed apk。

            4.簽名之后,用zipalign(壓縮對齊)優化你的APK文件。
              未簽名的apk不能使用,也不能優化。簽名之后的apk谷歌推薦使用zipalign.exe(位于android-sdk-windows ools目錄下)工具對其優化:

                   D:>zipalign -v 4 demo_signed.apk final.apk

              如上,zipalign能夠使apk文件中未壓縮的數據在4個字節邊界上對齊(4個字節是一個性能很好的值),這樣android系統就可以使用mmap()(請自行查閱這個函數的用途)函數讀取文件,可以在讀取資源上獲得較高的性能,
              PS:1.在4個字節邊界上對齊的意思就是,一般來說,是指編譯器吧4個字節作為一個單位來進行讀取的結果,這樣的話,CPU能夠對變量進行高效、快速的訪問(較之前不對齊)。
                      2.對齊的根源:android系統中的Davlik虛擬機使用自己專有的格式DEX,DEX的結構是緊湊的,為了讓運行時的性能更好,可以進一步用"對齊"進一步優化,但是大小一般會有所增加。

            5.簽名對你的App的影響。
               你不可能只做一個APP,你可能有一個宏偉的戰略工程,想要在生活,服務,游戲,系統各個領域都想插足的話,你不可能只做一個APP,谷歌建議你把你所有的APP都使用同一個簽名證書。
               使用你自己的同一個簽名證書,就沒有人能夠覆蓋你的應用程序,即使包名相同,所以影響有:
              1) App升級。 使用相同簽名的升級軟件可以正常覆蓋老版本的軟件,否則系統比較發現新版本的簽名證書和老版本的簽名證書不一致,不會允許新版本安裝成功的。
              2) App模塊化。android系統允許具有相同的App運行在同一個進程中,如果運行在同一個進程中,則他們相當于同一個App,但是你可以單獨對他們升級更新,這是一種App級別的模塊化思路。
              3) 允許代碼和數據共享。android中提供了一個基于簽名的Permission標簽。通過允許的設置,我們可以實現對不同App之間的訪問和共享,如下:

            1. AndroidManifest.xml:<permission android:protectionLevel="normal" />  
                    AndroidManifest.xml:<permission android:protectionLevel="normal" /> 
            其中protectionLevel標簽有4種值:normal(缺省 值),dangerous, signature,signatureOrSystem。簡單來說,normal是低風險的,所有的App不能訪問和共享 此App。dangerous是高風險的,所有的App都能訪問和共享此App。signature是指具有相同簽名的App可以訪問和共享此App。 signatureOrSystem是指系統image中App和具有相同簽名的App可以訪問和共享此App,谷歌建議不要使用這個選項,因為簽名就足 夠了,一般這個許可會被用在在一個image中需要共享一些特定的功能的情況下。
            posted on 2012-03-20 14:11 life02 閱讀(1552) 評論(0)  編輯 收藏 引用 所屬分類: Android開發
            久久精品aⅴ无码中文字字幕不卡| 久久久久久久久久免免费精品| 日本WV一本一道久久香蕉| 亚洲美日韩Av中文字幕无码久久久妻妇 | 手机看片久久高清国产日韩| 久久人妻无码中文字幕| av国内精品久久久久影院| 久久综合九色欧美综合狠狠| 亚洲AV无一区二区三区久久| 久久综合九色综合精品| 久久频这里精品99香蕉久| 9191精品国产免费久久| 伊人久久精品无码二区麻豆| 99久久精品这里只有精品| 97精品伊人久久久大香线蕉| 久久久久久久国产免费看| 久久99精品国产一区二区三区| 久久亚洲电影| 国产福利电影一区二区三区久久久久成人精品综合| 激情综合色综合久久综合| 久久亚洲中文字幕精品有坂深雪| 久久婷婷人人澡人人| 俺来也俺去啦久久综合网| 国内精品久久久久影院薰衣草 | 91精品国产高清久久久久久91| 久久精品国产AV一区二区三区| 久久久久久久国产免费看| 91久久精品视频| 久久99热精品| 欧美777精品久久久久网| 久久w5ww成w人免费| 97精品伊人久久大香线蕉app| 久久人搡人人玩人妻精品首页 | 久久人人添人人爽添人人片牛牛| 久久精品国产只有精品66| 亚洲精品高清久久| 国产精品久久99| 丁香狠狠色婷婷久久综合| 97精品久久天干天天天按摩| 久久国产色AV免费看| 亚洲国产成人久久精品影视|