天堂国产午夜亚洲专区-少妇人妻综合久久蜜臀-国产成人户外露出视频在线-国产91传媒一区二区三区

android應(yīng)用軟件工程師_Android應(yīng)用簽名

發(fā)布時(shí)間:2016-10-02 19:20

  本文關(guān)鍵詞:Android應(yīng)用,由筆耕文化傳播整理發(fā)布。


Android應(yīng)用簽名 Posted on

為了要簽名?

    開(kāi)發(fā)Android的人這么多,完全有可能大家都把類(lèi)名,包名起成了一個(gè)同樣的名字,這時(shí)候如何區(qū)分?簽名這時(shí)候就是起區(qū)分作用的。

    由于開(kāi)發(fā)商可能通過(guò)使用相同的Package Name來(lái)混淆替換已經(jīng)安裝的程序,簽名可以保證相當(dāng)名字,但是簽名不同的包不被替換。

    APK如果使用一個(gè)key簽名,發(fā)布時(shí)另一個(gè)key簽名的文件將無(wú)法安裝或覆蓋老的版本,這樣可以防止你已安裝的應(yīng)用被惡意的第三方覆蓋或替換掉。

    這樣簽名其實(shí)也是開(kāi)發(fā)者的身份標(biāo)識(shí)。交易中抵賴(lài)等事情發(fā)生時(shí),簽名可以防止抵賴(lài)的發(fā)生。

 

簽名的注意事項(xiàng)

image

簽名的方法 方法一、使用Eclipse工具

此方法適用于Android1.5及以上版本。

步驟一:打開(kāi)Eclipse->選擇你要簽名的項(xiàng)目->右擊->android tools->Export signed Application package

image

步驟二,在出現(xiàn)的窗口確認(rèn)是不是這個(gè)項(xiàng)目要簽名,然后選擇下一步:

image

步驟三:在Export Android Application 這一步,如果我們之前已有有了 keystore, 選擇我們之前已有的,否則我們新建一個(gè)。

如下,選擇需要保存這個(gè)證書(shū)文件的目錄,以及這個(gè)證書(shū)文件的一個(gè)密碼。

image

步驟四,點(diǎn)擊下一步后,我們需要填寫(xiě)keystore的基本信息,如,別名,密碼,有效期,姓名,組織,組織名稱(chēng),所在城市,所在省份,國(guó)家等,點(diǎn)擊Next

image

步驟五、選擇被簽名后的APK保存位置。點(diǎn)擊finish。注意是選擇最終將產(chǎn)生的文件。

image

之后我們?cè)趧偛胚x擇的目錄下就可以看到生成的簽名后的APK文件。

方法二:使用命令行方式簽名。

這種方式比起前面要復(fù)雜很多了,但是卻對(duì)我們理解APK文件有很多幫助。這里我們是使用Keytool和Jarsigner給程序簽名。

keytool 是個(gè)密鑰和證書(shū)管理工具。jarsigner 工具利用密鑰倉(cāng)庫(kù)中的信息來(lái)產(chǎn)生或校驗(yàn) Java 存檔 (JAR) 文件的數(shù)字簽名 (JAR 文件將類(lèi)文件、圖象、聲音和/或其它數(shù)字化數(shù)據(jù)打包在一個(gè)文件中)。

這兩個(gè)工具都是JDK自帶的,,所以你當(dāng)前需要先確保JDK安裝正確。并且環(huán)境變量設(shè)置正確,以便可以以命令行的方式進(jìn)行處理。

 

步驟一:用 KeyTool 產(chǎn)生證書(shū)文件

下面是我隨便生成的一個(gè)證書(shū)文件:

E:\Projects\cybercare.cn\trunk\android\ks2>keytool -genkey -keystore ks2.keystor
e -keyalg RSA -validity 10000 -alias ks2.keystore
輸入keystore密碼:
您的名字與姓氏是什么?
  [Unknown]: 
您的組織單位名稱(chēng)是什么?
  [Unknown]:  Cybercare
您的組織名稱(chēng)是什么?
  [Unknown]:  津馳速信
您所在的城市或區(qū)域名稱(chēng)是什么?
  [Unknown]:  北京
您所在的州或省份名稱(chēng)是什么?
  [Unknown]:  北京
該單位的兩字母國(guó)家代碼是什么
  [Unknown]:  CN
CN=www.cybercare.cn, OU=Cybercare, O=津馳速信, L=北京, ST=北京, C=CN 正確嗎?
  [否]:  y

輸入<ks2.keystore>的主密碼
        (如果和 keystore 密碼相同,按回車(chē)):
再次輸入新密碼:

E:\Projects\cybercare.cn\trunk\android\ks2>

命令參數(shù)說(shuō)明:

-genkey    產(chǎn)生證書(shū)文件
-keystore  指定密鑰庫(kù)的.keystore文件中

-keyalg     指定密鑰的算法

-validity    為證書(shū)有效天數(shù),這里我們寫(xiě)的是10000天。
-alias       產(chǎn)生別名

在輸入密碼時(shí)沒(méi)有回顯,只管輸入就可以了,一般位數(shù)建議使用20位,切忌需要記下來(lái)后面還要用,

注意:

1、CN(Common Name - 名字與姓氏):其實(shí)這個(gè)“名字與姓氏”應(yīng)該是域名,比如說(shuō)localhost或是blog.devep.net之類(lèi)的。輸成了姓名,和真正運(yùn)行的時(shí)候域名不符,會(huì)出問(wèn)題。瀏覽器訪(fǎng)問(wèn)時(shí),彈出一個(gè)對(duì)話(huà)框,提示“安全證書(shū)上的名稱(chēng)無(wú)效,或者與站點(diǎn)名稱(chēng)不匹配”,用戶(hù)選擇繼續(xù)還是可以瀏覽網(wǎng)頁(yè)。但是用http client寫(xiě)程序訪(fǎng)問(wèn)的時(shí)候,會(huì)拋出類(lèi)似于“javax.servlet.ServletException: HTTPS hostname wrong: should be ”的異常。

2、在用keytool生成數(shù)字證書(shū)時(shí)必須保證:-keystore androidapp.keystore -alias androidapp.keystore 兩者名稱(chēng)必須相同。否則下一步簽名時(shí)會(huì)出現(xiàn)錯(cuò)誤:jarsigner: 找不到 androidapp.keystore 的證書(shū)鏈。androidapp.keystore 必須引用包含專(zhuān)用密鑰和相應(yīng)的公共密鑰證書(shū)鏈的有效密鑰庫(kù)密鑰條目。

 

 

KeyTool的更多參數(shù)說(shuō)明可以看這篇文章:

 

步驟二:導(dǎo)出未簽名的APK文件

 

方法一:使用Eclipse

打開(kāi)Eclipse->選擇你要導(dǎo)出的項(xiàng)目->右擊->android tools->Export Unsigned Application package

image

然后在選擇保存文件目錄和文件名對(duì)話(huà)框中輸入你想保存的地址,確認(rèn)后導(dǎo)出后提示信息類(lèi)似如下:

image

方法二:

使用Eclipse,在Package Explorer中選擇Androidmanifest.xml文件,找到overview項(xiàng)中,單擊Export the unsigned apk,如圖

image

注意:

提供的方法二:

直接進(jìn)入工程文件夾的bin目錄,比如我們的為C:\Documents and Settings\Administrator\workspace\android123\bin\android123.apk,直接復(fù)制出來(lái)就是未簽名的APK文件。

這個(gè)方法并不可取,這個(gè)方法取出來(lái)的是加了Debug簽名的APK文件,而不是未簽名的APK文件。

 

 

步驟三,使用產(chǎn)生證書(shū)文件簽名

下面是我簽名我一個(gè)之前寫(xiě)的演示程序的執(zhí)行效果:

E:\Projects\cybercare.cn\trunk\android\ks2>jarsigner -verbose -keystore ks2.keystore -signedjar GasBuddy_signed_00.apk GasBuddy002.apk ks2.keystore
輸入密鑰庫(kù)的口令短語(yǔ):
輸入 ks2.keystore 的密鑰口令:
   正在添加: META-INF/MANIFEST.MF
   正在添加: META-INF/KS2_KEYS.SF
   正在添加: META-INF/KS2_KEYS.RSA
  正在簽名: res/layout/active.xml
  正在簽名: res/layout/businessmeninfo_activitylayout.xml
  正在簽名: res/layout/businessmeninfo_commentinfo_layout.xml
  正在簽名: res/layout/businessmeninfo_commentlist_layout.xml
  正在簽名: res/layout/businessmeninfo_information_layout.xml
  正在簽名: res/layout/businessmeninfo_pointcardinfo_layout.xml
  正在簽名: res/layout/businessmeninfo_pointcardlist_layout.xml
  正在簽名: res/layout/commen_publish.xml
  正在簽名: res/layout/discount_gasstation_foot_layout.xml
  正在簽名: res/layout/discount_gasstation_head_layout.xml
  正在簽名: res/layout/discount_gasstation_layout.xml
  正在簽名: res/layout/discount_gasstation_list_activitylayout.xml
  正在簽名: res/layout/discount_gasstation_title_layout.xml
  正在簽名: res/layout/login.xml
  正在簽名: res/layout/main.xml
  正在簽名: res/layout/menu_activitylayout.xml
  正在簽名: res/layout/my_point_gasstation.xml
  正在簽名: res/layout/my_point_gasstation_view.xml
  正在簽名: res/layout/nearby_gasstation.xml
  正在簽名: res/layout/overlay_pop.xml
  正在簽名: res/layout/register.xml
  正在簽名: res/layout/splash_layout.xml
  正在簽名: AndroidManifest.xml
  正在簽名: resources.arsc
  正在簽名: res/drawable-hdpi/bubble_background.9.png
  正在簽名: res/drawable-hdpi/icon.png
  正在簽名: res/drawable-hdpi/marker.png
  正在簽名: res/drawable-hdpi/u25.png
  正在簽名: res/drawable-hdpi/u30.png
  正在簽名: res/drawable-ldpi/icon.png
  正在簽名: res/drawable-mdpi/icon.png
  正在簽名: classes.dex

E:\Projects\cybercare.cn\trunk\android\ks2>

 

有關(guān) jarsigner 參數(shù)的詳細(xì)信息可以參看

 

解決對(duì)android APK 項(xiàng)目進(jìn)行簽名過(guò)程中遇到的問(wèn)題

參考資料

Android簽名用keytool和jarsigner制作apk文件

如何導(dǎo)出一個(gè)未簽名的APK文件?

無(wú)法對(duì)jar進(jìn)行簽名,Android jarsigner問(wèn)題

有關(guān)Android簽名問(wèn)題總結(jié)

Android 簽名詳解

android簽名apk批處理文件

android簽名與release
?uid=20665441&do=blog&id=377220


  本文關(guān)鍵詞:Android應(yīng)用,由筆耕文化傳播整理發(fā)布。



本文編號(hào):129252

資料下載
論文發(fā)表

本文鏈接:http://sikaile.net/wenshubaike/xxkj/129252.html


Copyright(c)文論論文網(wǎng)All Rights Reserved | 網(wǎng)站地圖 |

版權(quán)申明:資料由用戶(hù)0b154***提供,本站僅收錄摘要或目錄,作者需要?jiǎng)h除請(qǐng)E-mail郵箱bigeng88@qq.com