亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 系統 > Android > 正文

Android應用程序簽名步驟及相關知識介紹

2020-04-11 12:29:54
字體:
來源:轉載
供稿:網友

本文主要講解Android應用程序簽名相關的理論知識,包括:什么是簽名、為什么要給應用程序簽名、如何給應用程序簽名等。

1、什么是簽名?
      如果這個問題不是放在Android開發中來問,如果是放在一個普通的版塊,我想大家都知道簽名的含義??赏褪菍⒁恍┥钪谐S玫男g語放在計算機這種專業領域,大家就開始迷惑了。計算機所做的事情,或者說編程語言所做的事情,不正是在盡可能地模擬現實嗎?所以,計算機中所說的簽名和生活中所說的簽名在本質上是一樣的,它所起到的作用也是一致的!
      讓我們來看看,在現實生活中的簽名。比如下面這張圖片:
           
這是女星孫儷的簽名。簽名就意味著在紙上或別處寫下自己的名字,或者說在某處打上一個標記作為你自己的一種特有的標識,當別人看到這個簽名的時候,他會知道這是和你有關的,而不是其它人。

2、為什么要給Android應用程序簽名?
      如果只能用一句簡單的話語來回答這個問題的話,我會說:“這是Android系統所要求的”。
      Android系統要求每一個Android應用程序必須要經過數字簽名才能夠安裝到系統中,也就是說如果一個Android應用程序沒有經過數字簽名,是沒有辦法安裝到系統中的!Android通過數字簽名來標識應用程序的作者和在應用程序之間建立信任關系,不是用來決定最終用戶可以安裝哪些應用程序。這個數字簽名由應用程序的作者完成,并不需要權威的數字證書簽名機構認證,它只是用來讓應用程序包自我認證的。

3、為什么我開發的Android應用程序沒有做什么簽名也能在模擬器和手機上運行?
      你沒有給Android應用程序簽名并不代表Android應用程序沒有被簽名。為了方便我們開發調試程序,ADT會自動的使用debug密鑰為應用程序簽名。debug密鑰?它在哪?debug密鑰是一個名為debug.keystore的文件,它的位置:
            系統盤符:/Documents and Settings/liufeng/.android/debug.keystore
“liufeng”對應于你自己的windows操作系統用戶名,怎么樣,是不是已經找到它了。這也就意味著,如果我們想擁有自己的簽名,而不是讓ADT幫我們簽名的話,我們也要有一個屬于自己的密鑰文件(*.keystore)。

4、Android應用程序簽名步驟
1)準備工作
      apk的簽名工作可以通過兩種方式來完成:
            1)通過ADT提供的圖形化界面完成apk簽名;
            2)完全通過DOS命令來完成apk簽名
我比較喜歡第2)種方式,所以下面將講解如何通過命令的方式完成apk簽名。
      給apk簽名一共要用到3個工具,或者說3個命令,分別是:keytool、jarsigner和zipalign,下面是對這3個工具的簡單介紹:
            1)keytool:生成數字證書,即密鑰,也就是上面說到的擴展名為.keystore的那類文件;
            2)jarsigner:使用數字證書給apk文件簽名;
            3)zipalign:對簽名后的apk進行優化,提高與Android系統交互的效率(Android SDK1.6版本開始包含此工具)
      從這3個工具的作用也可以看出,這3個工具的使用順序。通常我們自己所開發的所有應用程序,都是使用同樣的簽名,即使用同一個數字證書,這就意味著:如果你是第一次做Android應用程序簽名,上面的3個工具都將用到;但如果你已經有數字證書了,以后再給其它apk簽名時,只需要用到jarsigner和zipalign就可以完成。
      為了方便使用上面3個命令,首先需要將上面3個工具所在路徑添加到環境變量path中(我說的是為了方便使用,沒有說必須要這么做)。怎么配置環境變量就不在此講解了,這里需要說一下這3個工具默認所在的路徑:
            1)keytool:該工具位于jdk安裝路徑的bin目錄下;
            2)jarsigner:該工具位于jdk安裝路徑的bin目錄下;
            3)zipalign:該工具位于android-sdk-windows/tools/目錄下
      不知道大家是否注意到keytool和jarsigner兩個工具是jdk自帶的,也就意味著生成數字證書和文件簽名不是Android的專利;另外從字面上理解jarsigner也能猜得出該工具主要是用來給jar文件簽名的。
2)生成未經簽名的apk文件
      既然我們要自己對apk進行簽名,就不再需要ADT默認幫我們簽名了。如何得到一個未經簽名的apk文件呢?打開Eclipse,在Android工程名稱上點擊右鍵,依次選擇“Android Tools” - “Export Unsigned Application Package ...”,然后選擇一個存儲位置保存即可。這樣就得到了一個未經簽名的apk文件。
3)使用keytool工具生成數字證書
      keytool -genkey -v -keystore liufeng.keystore -alias liufeng.keystore -keyalg RSA -validity 20000
說明:
      1)keytool是工具名稱,-genkey意味著執行的是生成數字證書操作,-v表示將生成證書的詳細信息打印出來,顯示在dos窗口中;
      2)-keystore liufeng.keystore 表示生成的數字證書的文件名為“liufeng.keystore”;
      3)-alias liufeng.keystore 表示證書的別名為“liufeng.keystore”,當然可以不和上面的文件名一樣;
      4)-keyalg RSA 表示生成密鑰文件所采用的算法為RSA;
      5)-validity 20000 表示該數字證書的有效期為20000天,意味著20000天之后該證書將失效
在執行上面的命令生成數字證書文件時,會提示你輸入一些信息,包括證書的密碼,示例如下:
     
4)使用jarsigner工具為Android應用程序簽名
      jarsigner -verbose -keystore liufeng.keystore -signedjar notepad_signed.apk notepad.apk liufeng.keystore
說明:
      1)jarsigner是工具名稱,-verbose表示將簽名過程中的詳細信息打印出來,顯示在dos窗口中;
      2)-keystore liufeng.keystore 表示簽名所使用的數字證書所在位置,這里沒有寫路徑,表示在當前目錄下;
      3)-signedjar notepad_signed.apk notepad.apk 表示給notepad.apk文件簽名,簽名后的文件名稱為notepad_signed.apk;
      4)最后面的liufeng.keystore 表示證書的別名,對應于生成數字證書時-alias參數后面的名稱
5)使用zipalign工具優化已簽名的apk(非必須但建議這么做)
      zipalign -v 4 notepad_signed.apk notepad_signed_aligned.apk
說明:
      1)zipalign是工具名稱,-v表示在DOS窗口打印出詳細的優化信息;
      2)notepad_signed.apk notepad_signed_aligned.apk 表示對已簽名文件notepad_signed.apk進行優化,優化后的文件名為notepad_signed_aligned.apk

說明:如果你以前的程序是采用默認簽名的方式(即debug簽名),一旦換了新的簽名應用將不能覆蓋安裝,必須將原先的程序卸載掉,才能安裝上。因為程序覆蓋安裝主要檢查兩點:
      1)兩個程序的入口Activity是否相同。兩個程序如果包名不一樣,即使其它所有代碼完全一樣,也不會被視為同一個程序的不同版本;
      2)兩個程序所采用的簽名是否相同。如果兩個程序所采用的簽名不同,即使包名相同,也不會被視為同一個程序的不同版本,不能覆蓋安裝。
      另外,可能有人可能會認為反正debug簽名的應用程序也能安裝使用,那也沒有必要自己簽名了嘛。千萬不要這樣想,debug簽名的應用程序有這樣兩個限制,或者說風險:
      1)debug簽名的應用程序不能在Android Market上架銷售,它會強制你使用自己的簽名;
      2)debug.keystore在不同的機器上所生成的可能都不一樣,就意味著如果你換了機器進行apk版本升級,那么將會出現上面那種程序不能覆蓋安裝的問題。不要小視這個問題,如果你開發的程序只有你自己使用,當然無所謂,卸載再安裝就可以了。但要是你的軟件有很多使用客戶,這就是大問題了,就相當于軟件不具備升級功能!

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
中文字幕久久亚洲| 奇门遁甲1982国语版免费观看高清| 国产精品老牛影院在线观看| 国产日韩在线亚洲字幕中文| 成人午夜激情免费视频| 久久亚洲私人国产精品va| 欧美精品18videos性欧| 色偷偷av一区二区三区乱| 亚洲国产日韩欧美在线99| 久久久久久网址| 欧美理论在线观看| 亚洲精品久久久久国产| 欧美一级大片在线观看| 久久久久久久电影一区| 国产日韩精品在线观看| 中文字幕欧美国内| 欧美夫妻性生活视频| 日韩电影免费在线观看| 欧美成人免费在线观看| 国产精品视频公开费视频| 日韩免费精品视频| 国产精品一区二区久久久久| 久久视频在线观看免费| 青草青草久热精品视频在线观看| 欧美成人在线免费| 91网站免费看| 91麻豆国产精品| 中文字幕在线视频日韩| 日韩高清电影免费观看完整版| 日本成人在线视频网址| 国产视频久久久久久久| 亚洲激情自拍图| 日韩av电影中文字幕| 国内精品伊人久久| 久久影视三级福利片| 日韩精品在线观看视频| 成人久久久久久| 国产精品草莓在线免费观看| 最近中文字幕mv在线一区二区三区四区| 成人国产精品色哟哟| 亚洲色图欧美制服丝袜另类第一页| 欧美日韩激情视频8区| 狠狠操狠狠色综合网| 国产脚交av在线一区二区| 日韩视频在线免费观看| 国产精品久久久久久久久久久久| 国产成人极品视频| 超碰日本道色综合久久综合| 欧美日韩xxx| 日韩综合中文字幕| 国产精品日韩在线观看| 欧美黑人极品猛少妇色xxxxx| 国产精品人人做人人爽| 国产精品视频资源| 日韩av手机在线| 久久久久在线观看| 亚洲福利视频免费观看| 91影院在线免费观看视频| 成人国产精品久久久| 人人澡人人澡人人看欧美| 欧美另类老肥妇| 精品网站999www| 色哟哟入口国产精品| 久久久成人精品视频| 欧美成人亚洲成人日韩成人| 亚洲码在线观看| 97久久伊人激情网| 这里只有精品在线观看| 国产精品99久久久久久久久久久久| 91亚洲国产成人久久精品网站| 久久久久久亚洲精品中文字幕| 欧美日韩激情美女| 国产欧美日韩精品在线观看| 国产ts一区二区| 久久视频中文字幕| 亚洲乱码一区二区| 国产精品中文在线| 国产91成人在在线播放| 国产精品第1页| 成人xxxx视频| 国模精品视频一区二区三区| 性欧美长视频免费观看不卡| 成人网址在线观看| 日韩成人xxxx| 91九色精品视频| 欧美日韩国产中字| 亚洲精品久久久久中文字幕欢迎你| 国产精品入口免费视频一| 久久99久国产精品黄毛片入口| 欧美激情视频给我| 精品视频久久久久久| 亚洲自拍偷拍一区| 日韩电影在线观看永久视频免费网站| www.日韩免费| 一区二区国产精品视频| 中文字幕亚洲欧美日韩高清| 成人午夜在线影院| 一区二区三区四区在线观看视频| 国产精品日韩专区| 国产美女久久精品香蕉69| 欧美剧在线观看| 国产精品旅馆在线| 一区二区三区www| 热re91久久精品国99热蜜臀| 国产一区二区三区三区在线观看| 久久大大胆人体| 午夜精品美女自拍福到在线| 亚洲护士老师的毛茸茸最新章节| 欧美日韩国产综合新一区| 91久久精品久久国产性色也91| 亚洲欧美日韩视频一区| 成人黄色网免费| 亚洲午夜小视频| 欧美激情亚洲精品| 欧美日韩日本国产| 亚洲欧美综合精品久久成人| 日韩精品免费综合视频在线播放| 黑人精品xxx一区一二区| 日韩欧美黄色动漫| 国产精品第8页| 欧美日韩亚洲成人| 日韩精品一区二区三区第95| 最近中文字幕mv在线一区二区三区四区| 欧美亚洲成人免费| 午夜精品一区二区三区av| 欧美人在线观看| 中文字幕亚洲天堂| 中文字幕成人在线| 成人妇女免费播放久久久| 热re91久久精品国99热蜜臀| 国产精品男女猛烈高潮激情| 91美女福利视频高清| 久久视频在线播放| 国产成人高潮免费观看精品| 亚洲国产精品国自产拍av秋霞| 久久久91精品国产一区不卡| 亚洲色图15p| 2020欧美日韩在线视频| 国产精品成人在线| 亚洲欧美日韩视频一区| 国产在线观看不卡| 日韩免费在线播放| 欧美日韩另类字幕中文| 色琪琪综合男人的天堂aⅴ视频| 国产精品亚洲网站| 欧美日韩成人在线播放| 亚洲欧洲第一视频| 国产精品久久久久影院日本| 亚洲精品一区av在线播放| 欧美极品少妇全裸体| 中文字幕久久精品| 久久综合国产精品台湾中文娱乐网| 久久五月天色综合| 国产免费一区二区三区在线观看| 欧美日韩另类字幕中文| 欧美中文字幕视频在线观看| 国产精品久久久久久av下载红粉| 精品亚洲一区二区三区在线观看| 成人欧美一区二区三区在线| 国产精品扒开腿做爽爽爽男男| 5278欧美一区二区三区| 亚洲影院色无极综合| 欧美一级大片在线免费观看| 久久视频在线观看免费|