日韩免费,日 韩 a v 在 线 看,北京Av无码,国模蔻蔻私拍一区

安卓APP開發(fā):輕松設(shè)置應(yīng)用名稱與改名攻略

安卓應(yīng)用中app名稱與MainActivity的android:label的差異性

在安卓開發(fā)的世界里,app名稱和MainActivity的顯示標(biāo)題之間的關(guān)系是十分微妙的。每一個(gè)activity都有一個(gè)特定的android:label屬性,這個(gè)屬性定義了該activity在手機(jī)界面中的展示名稱。整個(gè)app的名稱則是由application級(jí)別的android:label屬性來(lái)定義的。

當(dāng)我們?cè)趍ain activity的XML布局文件中為其設(shè)置android:label屬性時(shí),會(huì)出現(xiàn)一個(gè)有趣的現(xiàn)象:app名稱會(huì)直接使用這個(gè)標(biāo)簽的值,導(dǎo)致它與MainActivity的標(biāo)題欄顯示內(nèi)容一致。這種現(xiàn)象產(chǎn)生的根源在于activity標(biāo)簽的優(yōu)先級(jí)高于application標(biāo)簽。當(dāng)兩者出現(xiàn)沖突時(shí),activity標(biāo)簽的值會(huì)覆蓋application標(biāo)簽的設(shè)置,使得預(yù)期的應(yīng)用名稱無(wú)法正確顯示。

安卓APP開發(fā):輕松設(shè)置應(yīng)用名稱與改名攻略

為了避免這種情況,我們需要在開發(fā)過(guò)程中謹(jǐn)慎使用標(biāo)簽。尤其要避免在main activity的XML布局文件中為其設(shè)置android:label屬性。為了實(shí)現(xiàn)應(yīng)用名稱的動(dòng)態(tài)控制,我們推薦在MainActivity的onCreate()方法中調(diào)用this.setTitle()方法來(lái)設(shè)置標(biāo)題。這樣做不僅能夠根據(jù)需求靈活改變應(yīng)用名稱,還能避免XML布局文件與運(yùn)行時(shí)設(shè)置的沖突。通過(guò)這種方式,開發(fā)者可以確保應(yīng)用名稱與用戶界面的協(xié)調(diào)一致,從而提升用戶體驗(yàn)。

安卓與iOS應(yīng)用大小比較:哪個(gè)更大?

如果你曾在Android和iOS的應(yīng)用商店中留意過(guò),可能會(huì)發(fā)現(xiàn)同一個(gè)APP在iOS版所需的容量大小要遠(yuǎn)大于Android版。比如QQ,在Google Play Store上可能只有幾十MB,但在App Store上卻可能達(dá)到幾百M(fèi)B。這讓許多用戶誤以為iOS在存儲(chǔ)空間上更加耗費(fèi)。關(guān)于這個(gè)問(wèn)題,背后其實(shí)有很多原因。

過(guò)去有一種流行的說(shuō)法是,由于iOS設(shè)備有多種屏幕分辨率,因此iOS版的APP會(huì)包含多套圖像資源,導(dǎo)致APP占用大量空間。而Android系統(tǒng)對(duì)圖像的處理要求相對(duì)較低,因此不同設(shè)備可以共用資源,APP體積相對(duì)較小。然而這種說(shuō)法已經(jīng)不能完全解釋現(xiàn)在的情況了。

當(dāng)我們深入分析兩個(gè)系統(tǒng)的APP文件時(shí),會(huì)發(fā)現(xiàn)它們的不同之處。在Android中,安裝文件通常是apk格式,而在iOS中是ipa格式。這兩個(gè)安裝文件實(shí)質(zhì)上都是壓縮包。以微信為例,其apk文件在解壓縮后的占用空間要比ipa小很多。但這并不意味著ipa文件本身比apk大很多。實(shí)際上,ipa文件包含了更多的資源和文件類型。

安卓APP開發(fā):輕松設(shè)置應(yīng)用名稱與改名攻略

微信apk解壓縮后主要有assets、lib、META-INF等文件和文件夾。其中占空間最大的通常是assets目錄、lib目錄、res目錄和classes.dex文件等。這些文件和文件夾構(gòu)成了APP的主體部分,包括代碼、資源、圖像等。因此我們不能簡(jiǎn)單地認(rèn)為iOS版的APP一定比Android版大。實(shí)際上,兩個(gè)平臺(tái)的APP大小差異取決于具體的APP和其使用的資源。

一、靜態(tài)資源與依賴庫(kù):Android與iOS的存儲(chǔ)差異

在軟件開發(fā)領(lǐng)域,資產(chǎn)目錄(assets)與庫(kù)文件目錄(lib)的區(qū)分對(duì)了解應(yīng)用的實(shí)際占用空間至關(guān)重要。讓我們一同探討Android和iOS兩大操作系統(tǒng)中,應(yīng)用的存儲(chǔ)結(jié)構(gòu)和特點(diǎn)。

二、Android系統(tǒng)的存儲(chǔ)架構(gòu)概覽

在Android系統(tǒng)中,assets目錄存放著應(yīng)用所需的音效、字體、表情包等靜態(tài)文件。而lib目錄則容納了依賴庫(kù)文件,如包含armeabi的lib庫(kù)。若應(yīng)用兼容x86架構(gòu),還會(huì)有相應(yīng)的依賴庫(kù),使得這個(gè)目錄體積更大。res或resource目錄主要存放圖片、影像等資源文件。

安卓APP開發(fā):輕松設(shè)置應(yīng)用名稱與改名攻略

三、Android中的執(zhí)行文件:classes.dex

在Android系統(tǒng)中,由JAVA的class文件編譯而來(lái)的classes.dex文件,是Dalvik虛擬機(jī)的可執(zhí)行文件。這個(gè)文件包含了應(yīng)用的主要執(zhí)行代碼。

四、iOS的安裝包結(jié)構(gòu)與執(zhí)行文件大小對(duì)比

相較而言,iOS的ipa安裝包結(jié)構(gòu)較為簡(jiǎn)單,Payload文件夾內(nèi)包含了應(yīng)用的所有執(zhí)行和資源文件。以微信為例,其主文件夾名為WeChat.app。除了主執(zhí)行文件外,其他資源文件的占用空間與Android版本相差不多。

五、APP安裝機(jī)制與實(shí)測(cè)占用空間

安卓APP開發(fā):輕松設(shè)置應(yīng)用名稱與改名攻略

Android和iOS的APP安裝機(jī)制有所不同。早期的Android使用Dalvik虛擬機(jī)執(zhí)行dex文件,但從4.4.4版本開始,Android引入了ART虛擬機(jī),使APK在安裝時(shí)經(jīng)過(guò)預(yù)編譯,轉(zhuǎn)化為機(jī)器識(shí)別碼,從而提高了啟動(dòng)和運(yùn)行速度。

而iOS的安裝方式則類似于Mac上的OS X,APP本身就是一個(gè)大文件夾,類似于Windows上的綠色軟件,安裝過(guò)程更像是復(fù)制文件。這意味著iOS的APP安裝包大小,很大程度上代表了其安裝后的占用空間。

實(shí)際測(cè)試顯示,微信在Android和iOS上的安裝后占用空間與標(biāo)注大小有所出入。在Android上,微信標(biāo)注大小為44.1MB,但實(shí)際安裝后占用空間增至104MB;而網(wǎng)易云音樂(lè)在標(biāo)注的29.8MB基礎(chǔ)上,安裝后增至54.33MB。這反映了不同操作系統(tǒng)下APP的實(shí)際運(yùn)行占用空間差異。了解這些差異對(duì)于優(yōu)化應(yīng)用性能、管理存儲(chǔ)空間具有重要意義。在Android平臺(tái)上微信與網(wǎng)易云音樂(lè)的那些事

======================

一、應(yīng)用大小差異解析

安卓APP開發(fā):輕松設(shè)置應(yīng)用名稱與改名攻略

在Android和iOS平臺(tái)上,應(yīng)用程序的大小似乎總是一個(gè)讓人困惑的問(wèn)題。比如,App Store上微信APP標(biāo)注的大小為123MB,但下載安裝完后變?yōu)?21.3MB,同樣的情況也發(fā)生在網(wǎng)易云音樂(lè)APP上。這主要是因?yàn)锳pp Store上顯示的APP大小是安裝到手機(jī)后的占用空間大小,而Android應(yīng)用商店大多只是顯示安裝文件的大小。用戶在下載和安裝應(yīng)用之前需要注意預(yù)留足夠的存儲(chǔ)空間。實(shí)際上,iOS上的APP在安裝后的大小與Android上的相差并不大。這種現(xiàn)象解答了許多網(wǎng)友關(guān)于為什么Android上的APP安裝后存儲(chǔ)空間會(huì)消失上百M(fèi)B的疑惑。

二、關(guān)于發(fā)布Android應(yīng)用程序

在發(fā)布Android應(yīng)用程序時(shí),簽名證書是一個(gè)重要的環(huán)節(jié)。Android系統(tǒng)要求所有的程序都必須經(jīng)過(guò)數(shù)字簽名后才能安裝。這個(gè)證書用于識(shí)別應(yīng)用程序的作者,并建立程序間的信任關(guān)系。對(duì)于開發(fā)者來(lái)說(shuō),理解以下幾點(diǎn)至關(guān)重要:

1. 所有應(yīng)用程序都必須簽名。未經(jīng)簽名的程序無(wú)法安裝。

2. 開發(fā)者可以使用自己的證書來(lái)簽名應(yīng)用程序,無(wú)需通過(guò)任何授權(quán)中心。

安卓APP開發(fā):輕松設(shè)置應(yīng)用名稱與改名攻略

3. 在為最終用戶發(fā)布應(yīng)用程序時(shí),必須使用合適的密鑰進(jìn)行簽名。不能使用SDK工具簽入的DebugKey來(lái)發(fā)布程序。

4. 系統(tǒng)只在安裝應(yīng)用程序時(shí)檢測(cè)證書的有效期。即使證書在安裝后失效,應(yīng)用程序仍然可以正常工作。

5. 開發(fā)者可以使用Keytool和Jarsigner等標(biāo)準(zhǔn)工具生成密鑰并簽名apk文件。

6. 簽名完成后,一定要使用zipalign工具優(yōu)化最終的APK包。

三、關(guān)于Android應(yīng)用安裝

安卓APP開發(fā):輕松設(shè)置應(yīng)用名稱與改名攻略

Android系統(tǒng)現(xiàn)在已經(jīng)大大提高了應(yīng)用安裝的速度,最新的Android 7.1.2系統(tǒng)尤其如此。更小的安裝文件并不意味著安裝過(guò)程就沒(méi)有問(wèn)題。在安裝之前,用戶需要注意預(yù)留足夠的存儲(chǔ)空間,通常是安裝文件大小的2-3倍。盡管Android應(yīng)用商店只顯示APK安裝文件的大小,但實(shí)際上安裝后的APP占用空間可能與iOS版本相差不大。用戶在下載和安裝應(yīng)用時(shí)應(yīng)該有一個(gè)清晰的認(rèn)識(shí),避免因?yàn)榇鎯?chǔ)空間不足而導(dǎo)致安裝失敗。

“為什么iOS上的APP比Android大好幾倍”其實(shí)是一個(gè)偽問(wèn)題。真實(shí)的情況是App Store上標(biāo)注的APP大小是安裝之后的大小,而Android應(yīng)用商店大多只是顯示安裝文件的大小。正確理解這一點(diǎn),有助于用戶更合理地管理手機(jī)存儲(chǔ)空間,順利安裝和使用各種應(yīng)用程序。在Android系統(tǒng)中進(jìn)行應(yīng)用程序的簽名:一個(gè)深入指南

=======================

一、概述

在Android開發(fā)中,無(wú)論你是在真機(jī)還是模擬器上運(yùn)行或調(diào)試程序,都必須對(duì)程序進(jìn)行簽名。這是因?yàn)锳ndroid系統(tǒng)通過(guò)簽名來(lái)驗(yàn)證應(yīng)用程序的身份和安全性。簽名是確保應(yīng)用程序完整性和安全性的重要步驟。

安卓APP開發(fā):輕松設(shè)置應(yīng)用名稱與改名攻略

二、簽名模式

在開發(fā)過(guò)程中,簽名模式主要分為兩種:Debug模式和Release模式。Eclipse的ADT插件和Ant編譯工具都支持這兩種模式。

Debug模式

在開發(fā)和測(cè)試階段,開發(fā)者通常會(huì)選擇Debug模式進(jìn)行簽名。在此模式下,編譯工具會(huì)使用JDK中的Keytool工具創(chuàng)建一個(gè)臨時(shí)的keystore和key(包含名稱和密碼)。每次編譯時(shí),都會(huì)使用這個(gè)DebugKey為apk文件簽名。由于密碼是固定的,因此在編譯過(guò)程中無(wú)需手動(dòng)輸入密碼。

Release模式

安卓APP開發(fā):輕松設(shè)置應(yīng)用名稱與改名攻略

當(dāng)你的應(yīng)用程序準(zhǔn)備發(fā)布時(shí),需要使用密鑰在Release模式下進(jìn)行簽名。有兩種主要方法可以實(shí)現(xiàn)這一點(diǎn):

1. 命令行中使用Keytool和Jarsigner。在此方法中,首先需要編譯出一個(gè)未簽名的apk文件,然后使用Jarsigner或類似的工具手動(dòng)為你的密鑰進(jìn)行簽名。如果沒(méi)有合適的密鑰,可以使用Keytool生成自己的keystore/key。

2. 使用ADT導(dǎo)出向?qū)АH绻闶褂肊clipse/ADT插件進(jìn)行開發(fā),可以使用導(dǎo)出向?qū)?lái)編譯程序,根據(jù)需要生成密鑰,并為apk文件簽名。所有這些操作都可以在導(dǎo)出向?qū)е型瓿?。完成簽名后,別忘了使用zipalign工具對(duì)apk進(jìn)行額外的優(yōu)化。

三、簽名策略

應(yīng)用程序的簽名策略會(huì)影響開發(fā)過(guò)程,特別是在發(fā)布多個(gè)應(yīng)用程序時(shí)。推薦在整個(gè)應(yīng)用程序生命周期內(nèi)使用相同的證書對(duì)應(yīng)用程序進(jìn)行簽名。這樣做有幾個(gè)重要的原因:

安卓APP開發(fā):輕松設(shè)置應(yīng)用名稱與改名攻略

應(yīng)用程序升級(jí)

當(dāng)進(jìn)行應(yīng)用程序升級(jí)時(shí),為了平滑的升級(jí)過(guò)程,需要簽署相同的證書。系統(tǒng)安裝升級(jí)應(yīng)用程序時(shí),會(huì)檢查新版本的證書是否與舊版本的證書匹配。如果證書匹配,系統(tǒng)才會(huì)允許升級(jí)。否則,用戶可能需要為應(yīng)用程序指定一個(gè)新的包名,這將導(dǎo)致用戶將新版本視為一個(gè)全新的應(yīng)用程序來(lái)安裝。

應(yīng)用程序模塊化

如果應(yīng)用程序需要模塊化,Android系統(tǒng)允許簽有相同證書的應(yīng)用程序在同一進(jìn)程中運(yùn)行,將它們視為一個(gè)單一的應(yīng)用程序。這樣配置后,用戶可以選擇更新每個(gè)獨(dú)立的模塊。

代碼/數(shù)據(jù)權(quán)限共享

安卓APP開發(fā):輕松設(shè)置應(yīng)用名稱與改名攻略

簽名的基本設(shè)定

在開始旅程之前,確保你的SDK編譯工具能夠輕松訪問(wèn)Keytool,這至關(guān)重要。大部分情況下,你可以通過(guò)設(shè)置JAVA_HOME環(huán)境變量來(lái)指引SDK編譯工具找到Keytool的路徑。你也可以選擇將JDK中的Keytool路徑添加到PATH變量中。

如果你在Linux上開發(fā),并使用GNU編譯器編譯Java程序,那么請(qǐng)確保你使用的是JDK中的Keytool,而不是gcj。如果/usr/bin/keytool是Path中的符號(hào)鏈接,請(qǐng)檢查其目標(biāo)是否指向JDK中的Keytool。若你的應(yīng)用要面向公眾發(fā)布,你還需要Jarsigner工具。幸運(yùn)的是,Jarsigner和Keytool都包含在JDK中,無(wú)需額外尋找。

Debug模式下的簽名

Android編譯工具提供了一個(gè)極為方便的Debug簽名模式,讓開發(fā)和調(diào)試應(yīng)用程序更為輕松,同時(shí)滿足Android系統(tǒng)的簽名要求。當(dāng)你以Debug模式編譯應(yīng)用時(shí),SDK工具會(huì)調(diào)用Keytool自動(dòng)創(chuàng)建一個(gè)Debug keystore和key。這個(gè)特殊的Debugkey會(huì)被自動(dòng)用于apk的簽名,意味著你無(wú)需自己的key來(lái)為應(yīng)用簽名。

安卓APP開發(fā):輕松設(shè)置應(yīng)用名稱與改名攻略

SDK工具在創(chuàng)建Debugkeystore/key時(shí),會(huì)使用預(yù)定義的名字和密碼等參數(shù):

Keystore名稱:“debug.keystore”

Keystore密碼:“android”

Key別名:“androiddebugkey”

Key密碼:“android”

安卓APP開發(fā):輕松設(shè)置應(yīng)用名稱與改名攻略

CN:“CN=AndroidDebug,O=Android,C=US”

如果有需要,你可以更改Debugkeystore/key的位置和名稱,或使用自定義的Debugkeystore/key。但請(qǐng)注意,任何自定義的Debugkeystore/key必須遵循默認(rèn)Debugkey的命名和密碼規(guī)則。(在Eclipse/ADT中,可通過(guò)Windows > Preferences > Android > Build進(jìn)行設(shè)置。)

重要提示:帶有Debug證書的應(yīng)用程序不適合公開發(fā)布。

Eclipse用戶

如果你在Eclipse/ADT環(huán)境下開發(fā)(并已按照前述步驟配置了Keytool),Debug模式下的簽名將默認(rèn)開啟。當(dāng)你運(yùn)行或調(diào)試應(yīng)用時(shí),ADT會(huì)自動(dòng)使用Debug證書進(jìn)行簽名,并運(yùn)行zipalign進(jìn)行處理,然后安裝到模擬器或連接的設(shè)備上。整個(gè)過(guò)程無(wú)需你的介入,前提是ADT能夠順利訪問(wèn)Keytool。

安卓APP開發(fā):輕松設(shè)置應(yīng)用名稱與改名攻略

Ant用戶

如果你使用Ant來(lái)編譯apk文件,需要在ant命令中添加debug選項(xiàng)以啟用Debug簽名模式(假設(shè)你正在使用由android工具生成的build.xml文件)。運(yùn)行ant debug命令時(shí),編譯腳本會(huì)生成keystore/key并對(duì)apk進(jìn)行簽名。然后腳本會(huì)使用zipalign工具對(duì)apk進(jìn)行對(duì)齊處理。整個(gè)過(guò)程同樣無(wú)需你的介入。更多信息可查閱“其他IDE下的開發(fā):Debug模式編譯”。

Debug證書過(guò)期問(wèn)題

證書失效時(shí)的編譯錯(cuò)誤與處理

當(dāng)你在進(jìn)行Ant編譯時(shí),可能會(huì)遇到一個(gè)關(guān)于證書失效的編譯錯(cuò)誤。錯(cuò)誤提示信息類似于這樣:

安卓APP開發(fā):輕松設(shè)置應(yīng)用名稱與改名攻略

[debug] 開始打包并生成bin/samples-debug.apk文件,嘗試使用debug key進(jìn)行簽名...

[exec] Debug證書于8月4日的下午3點(diǎn)43分過(guò)期。

同樣,如果你在Eclipse/ADT環(huán)境中開發(fā),Android控制臺(tái)也會(huì)顯示類似的錯(cuò)誤信息。面對(duì)這種情況,其實(shí)解決的辦法很簡(jiǎn)單:刪除debug.keystore文件即可。該文件的位置因操作系統(tǒng)而異,例如在OSX和Linux下默認(rèn)存儲(chǔ)在~/.android/avd,而在Windows XP下則可能存儲(chǔ)在C:Documents and Settings.android,Windows Vista下則可能存儲(chǔ)在C:Users.android。

重新生成keystore和Debug Key

當(dāng)你刪除原有的keystore后,下一次進(jìn)行編譯時(shí),編譯工具會(huì)自動(dòng)為你生成一個(gè)新的keystore和Debug key。這個(gè)過(guò)程無(wú)需過(guò)多干預(yù),只需確保你的開發(fā)環(huán)境正常運(yùn)行即可。

安卓APP開發(fā):輕松設(shè)置應(yīng)用名稱與改名攻略

Release模式下的簽名流程

當(dāng)你的應(yīng)用準(zhǔn)備向公眾發(fā)布時(shí),你需要完成一系列的步驟來(lái)為應(yīng)用進(jìn)行簽名。這些步驟包括:獲取合適的密鑰、在Release模式下編譯程序、使用密鑰簽名程序以及對(duì)APK包進(jìn)行對(duì)齊。

如果你是使用Eclipse/ADT插件進(jìn)行開發(fā),那么這個(gè)過(guò)程可以簡(jiǎn)潔許多。你可以利用導(dǎo)出向?qū)?lái)完成編譯、簽名以及對(duì)齊等操作。在這個(gè)過(guò)程中,導(dǎo)出向?qū)踔量梢詭湍闵梢粋€(gè)新的keystore和密鑰。如果你使用的是Eclipse,那么你可以直接開始使用“使用Eclipse ADT編譯和簽名”。

獲取合適的密鑰的重要性

在進(jìn)行應(yīng)用簽名時(shí),獲取一個(gè)合適的密鑰至關(guān)重要。這個(gè)密鑰需要代表個(gè)人、公司或組織實(shí)體的身份,并且擁有一個(gè)有效期。推薦的有效期應(yīng)超過(guò)25年。如果你在Android Market上發(fā)布你的應(yīng)用,需要注意應(yīng)用的有效期必須在2033年10月22日之后。這個(gè)密鑰不能是由Android SDK工具生成的Debug key。

安卓APP開發(fā):輕松設(shè)置應(yīng)用名稱與改名攻略

如果你沒(méi)有合適的密鑰,你需要使用Keytool來(lái)生成一個(gè)。Keytool的使用方法在“基本設(shè)定”中有詳細(xì)的描述。使用keytool命令并傳入一些可選參數(shù),你就可以生成一個(gè)密鑰。但請(qǐng)注意,生成密鑰的過(guò)程中要確保其安全性。如何安全地存儲(chǔ)你的密鑰非常重要,這關(guān)乎你和你的用戶的利益。生成密鑰時(shí),一定要為keystore和key設(shè)置強(qiáng)密碼。


本文原地址:http://m.czyjwy.com/news/51862.html
本站文章均來(lái)自互聯(lián)網(wǎng),僅供學(xué)習(xí)參考,如有侵犯您的版權(quán),請(qǐng)郵箱聯(lián)系我們刪除!
上一篇:安卓APP開發(fā):實(shí)現(xiàn)高效擴(kuò)展性的設(shè)計(jì)理念與策略
下一篇:安卓APP開發(fā):利用最新技術(shù)AS助力應(yīng)用快速開發(fā)成功