基于Android開發(fā)APP所需的知識(shí)領(lǐng)域
一個(gè)完整的Android應(yīng)用從設(shè)計(jì)到實(shí)現(xiàn),涵蓋的知識(shí)領(lǐng)域相當(dāng)廣泛。以下是開發(fā)Android應(yīng)用所需的主要知識(shí)點(diǎn):
一、前期需求規(guī)劃與信息

在開發(fā)之初,首先需要明確應(yīng)用的功能和目標(biāo)用戶。為此,需要制定詳細(xì)的需求文檔、功能文檔、流程圖及時(shí)序圖。這一階段的工作為后續(xù)的開發(fā)工作打下堅(jiān)實(shí)的基礎(chǔ)。
二、交互設(shè)計(jì)與UI設(shè)計(jì)
這一階段主要涉及應(yīng)用的界面設(shè)計(jì)及用戶體驗(yàn)。設(shè)計(jì)師會(huì)基于需求文檔,創(chuàng)建應(yīng)用的原型圖和交互設(shè)計(jì)效果。還需要熟悉不同屏幕密度的換算,確保應(yīng)用能在不同分辨率的設(shè)備上完美呈現(xiàn)。還需掌握Axure等交互工具以及Photoshop和Illustrator等UI設(shè)計(jì)工具。
三、應(yīng)用開發(fā)
在開發(fā)環(huán)境如ADT的支持下,開發(fā)者需要掌握J(rèn)ava語言以及Android開發(fā)環(huán)境和機(jī)制。根據(jù)項(xiàng)目需求,可能還需掌握WebService相關(guān)知識(shí)、數(shù)據(jù)庫開發(fā)、算法設(shè)計(jì)、API接口開發(fā)以及TCP/IP、socket等網(wǎng)絡(luò)協(xié)議知識(shí)。

四、服務(wù)器與數(shù)據(jù)庫
對于非單機(jī)版的應(yīng)用,可能需要與服務(wù)器進(jìn)行交互。開發(fā)者還需掌握相關(guān)服務(wù)器知識(shí),如ASP.Net、PHP、JSP等開發(fā)語言以及數(shù)據(jù)庫開發(fā)技術(shù)。
五、發(fā)布與調(diào)試
最后階段,開發(fā)者需要熟練掌握應(yīng)用的發(fā)布流程,包括真機(jī)調(diào)試、證書管理、打包及上架等。
Android與iOS的APP大小對比

許多用戶都注意到,在Android的應(yīng)用商店和iOS的App Store上,同一款A(yù)PP的所需容量大小差異較大。例如,QQ在Google Play Store上只有34MB,而在App Store上卻高達(dá)231MB。
這種情況的出現(xiàn),可能與多種因素有關(guān)。iOS系統(tǒng)的封閉性使得其APP在編譯過程中可能包含了更多的系統(tǒng)原生代碼,從而導(dǎo)致文件體積較大。Android系統(tǒng)的開放性使得開發(fā)者在開發(fā)過程中有更多的選擇,可能采用了不同的技術(shù)或框架,影響了APP的大小。還可能涉及到應(yīng)用商店的打包方式、APP功能差異及圖片資源等因素。
無論是Android還是iOS,開發(fā)者都需要根據(jù)平臺(tái)特性及用戶需求,選擇合適的技術(shù)和工具,開發(fā)出優(yōu)質(zhì)的應(yīng)用。iOS與Android系統(tǒng)APP文件大小差異解析
一、安裝文件分析
在移動(dòng)應(yīng)用開發(fā)中,我們了解到Android和iOS兩種主流操作系統(tǒng)具有不同的應(yīng)用安裝文件格式。Android使用apk文件,而iOS則是ipa文件。這兩種安裝文件,從本質(zhì)上來說,都是壓縮包的形式。

以微信APP為例,其apk版本(版本為6.5.10)在Windows上顯示的原始文件大小為44.1MB,解壓縮后占用93.7MB。而微信APP的ipa版本(版本為6.5.11)的原始文件大小為145MB,解壓縮后占用空間更是高達(dá)186MB。初步看來,ios系統(tǒng)的ipa文件確實(shí)比Android的apk大很多。
那么,這些安裝文件內(nèi)部究竟包含哪些內(nèi)容呢?讓我們進(jìn)一步深入解析。
二、微信apk與ipa文件大小對比
一個(gè)apk文件解壓縮后,主要包括assets、lib、META-INF、r(即res)、AndroidManifest.xml、classes.dex、resources.arsc等文件和文件夾。其中,assets目錄存放靜態(tài)文件,如音效、字體、表情包等。lib目錄包含依賴庫文件。res或resource目錄則主要存放資源文件,如圖片和影像。classes.dex文件則是Android中Dalvik虛擬機(jī)的可執(zhí)行文件。
相對而言,iOS的ipa安裝包結(jié)構(gòu)較為簡單,主要包含Payload文件夾,其中包含了APP的所有執(zhí)行和資源文件。

通過對微信apk和ipa文件的解析,我們發(fā)現(xiàn)兩個(gè)系統(tǒng)的應(yīng)用除主執(zhí)行文件外,其他資源文件的占用空間相差不大。這顛覆了之前因?yàn)椴煌直媛识枰煌瑘D像資源的誤解。
三、主執(zhí)行文件大小對比
針對微信這一實(shí)例,我們發(fā)現(xiàn)iOS版微信的主執(zhí)行文件大小為132MB,而其他文件只有54MB。而在Android版本中,主執(zhí)行文件(包括classes.dex文件和lib目錄)大小為52.6MB,其他資源文件為41.7MB??梢姡瑑蓚€(gè)系統(tǒng)的同一應(yīng)用主執(zhí)行文件大小有明顯差異,但這并不代表iOS應(yīng)用因?yàn)閳D像資源而體積龐大。
四、APP安裝機(jī)制差異
從安裝文件來看,iOS的APP確實(shí)要比Android版的大好幾倍。這主要是由于兩個(gè)系統(tǒng)的安裝機(jī)制不同。Android系統(tǒng)的apk文件包含了應(yīng)用的所有必要元素,如代碼、資源等,在一個(gè)包內(nèi)集成處理。而iOS的ipa文件雖然也是應(yīng)用的完整集合體,但由于系統(tǒng)架構(gòu)的不同,其體積可能會(huì)因?yàn)榘嘞到y(tǒng)兼容性的代碼和額外的系統(tǒng)特性而更大。

五、總結(jié)
通過對Android和iOS系統(tǒng)APP的文件大小分析,我們發(fā)現(xiàn)兩個(gè)系統(tǒng)的應(yīng)用安裝包除主執(zhí)行文件外,其他資源文件的占用空間相差不大。而主執(zhí)行文件的大小差異則主要是由于系統(tǒng)架構(gòu)和安裝機(jī)制的不同導(dǎo)致的。我們不能簡單地將APP的體積大小歸咎于圖像資源的問題。
一、Android與iOS的APP安裝機(jī)制概述
曾經(jīng),Android系統(tǒng)通過Dalvik虛擬機(jī)執(zhí)行apk中的classes.dex文件來運(yùn)行APP。為提高APP啟動(dòng)與運(yùn)行的速度,從4.4.4版本開始,Android引入了ART(Android Runtime)虛擬機(jī)。這使得apk在安裝到系統(tǒng)的過程中會(huì)進(jìn)行預(yù)編譯,將dex文件編譯成機(jī)器更易識(shí)別的oat文件。相對而言,iOS的開發(fā)與mac電腦上的OS X同源,其APP安裝更像是一個(gè)簡單的文件復(fù)制過程。
二、實(shí)測APP安裝后的占用空間對比
在基于Android 7.1.2的Lineage 14.1和iOS 10.3.2系統(tǒng)上進(jìn)行實(shí)測,對比微信和網(wǎng)易云音樂兩個(gè)APP在應(yīng)用商店上的文件大小與安裝后的實(shí)際占用空間。結(jié)果顯示,雖然應(yīng)用商店中標(biāo)注的Android版APP大小較小,但實(shí)際安裝后占用空間卻有所增加。而iOS版的APP大小則較為接近標(biāo)注大小。

三 結(jié)、Android與iOS APP安裝后的占用空間分析
經(jīng)過實(shí)測對比,我們發(fā)現(xiàn)Android和iOS的APP在安裝后的占用空間上并沒有顯著的差異。原因在于,Android系統(tǒng)的安裝機(jī)制會(huì)在安裝過程中對APP進(jìn)行編譯優(yōu)化,使得安裝文件的大小并不代表最終占用空間的大小。而iOS的APP本身就是一個(gè)包含所有必要文件的文件夾,安裝過程中沒有太多額外的變化。用戶在安裝APP時(shí),無論是Android還是iOS,都需要關(guān)注設(shè)備的存儲(chǔ)空間是否足夠。
四、用戶需要注意的事項(xiàng)
對于Android用戶來說,雖然應(yīng)用商店中顯示的APK安裝文件大小較小,但在實(shí)際安裝過程中,需要注意預(yù)留2-3倍于安裝文件的存儲(chǔ)空間。這是因?yàn)榘惭b過程中需要進(jìn)行編譯優(yōu)化,最終占用的空間可能會(huì)比安裝文件大。而對于iOS用戶來說,App Store上標(biāo)注的APP大小已經(jīng)包含了安裝后的占用空間,因此可以更直觀地了解設(shè)備的存儲(chǔ)情況。
五、總結(jié)

關(guān)于“為什么iOS上的APP比Android大幾倍”的問題,實(shí)際上是一個(gè)誤解。App Store上標(biāo)注的APP大小是安裝后的占用空間,而Android應(yīng)用商店大多只顯示安裝文件的大小。在安裝過程中,Android的APP會(huì)進(jìn)行編譯優(yōu)化,最終占用的空間可能與iOS版相差無幾。用戶在選擇、安裝APP時(shí),應(yīng)關(guān)注設(shè)備的實(shí)際存儲(chǔ)空間,并根據(jù)需求合理規(guī)劃。