Android項目構(gòu)建相關(guān)面試問題

一拱撵、Android構(gòu)建流程

android apk構(gòu)建詳細流程圖


打包步驟

1. 通過aapt打包res資源文件,生成R.java捷沸、resources.arsc和res文件(二進制 & 非二進制如res/raw和pic保持原樣) 焊刹。

2. 處理.aidl文件矗钟,生成對應(yīng)的Java接口文件助隧。

3. 通過Java Compiler編譯R.java筑凫、Java接口文件、Java源文件并村,生成.class文件巍实。

4. 通過dex命令,將.class文件和第三方庫中的.class文件處理生成classes.dex哩牍。

5. 通過apkbuilder工具蔫浆,將aapt生成的resources.arsc和res文件、assets文件和classes.dex一起打包生成apk姐叁。

6. 通過Jarsigner工具,對上面的apk進行debug或release簽名洗显。

對apk文件進行簽名外潜。APK需要簽名才能在設(shè)備上進行安裝很多時候我們在逆向改完后,會因為沒有簽名文件導(dǎo)致最后的apk無法正常使用挠唆,又細分為本地驗證和服務(wù)器驗證处窥。

7. 通過zipalign工具,將簽名后的apk進行對齊處理玄组。


二滔驾、Jarsigner集成構(gòu)建



三、GIt使用

參考了解:

1俄讹、Git容易混淆的兩個概念

工作區(qū)

gitignore文件

下面我們看看常用的規(guī)則:

1)/mtk/過濾整個文件夾

2)*.zip過濾所有.zip文件

3)/mtk/do.c過濾某個具體文件

2哆致、一些常用的git命令

Git常用命令清單

Workspace:工作區(qū)

Index / Stage:暫存區(qū)

Repository:倉庫區(qū)(或本地倉庫)

Remote:遠程倉庫


git init? ? ?在當(dāng)前目錄新建一個Git代碼庫

git status??顯示有變更的文件

git diff??顯示暫存區(qū)和工作區(qū)的差異

git add? ??添加指定文件到暫存區(qū)

git commit??提交暫存區(qū)到倉庫區(qū)

git clone??下載一個項目和它的整個代碼歷史

git branch? ?列出所有本地分支

git checkout? ?切換到指定分支,并更新工作區(qū)

更多git命令參考

3患膛、git兩種工作流

fork/clone

clone


深入理解學(xué)習(xí)Git工作流


四摊阀、Proguard

1、proguard是什么

Java 是一種跨平臺的、解釋型語言胞此,Java 源代碼編譯成中間”字節(jié)碼”存儲于 class 文件中臣咖。由于跨平臺的需要,Java 字節(jié)碼中包括了很多源代碼信息漱牵,如變量名夺蛇、方法名,并且通過這些名稱來訪問變量和方法酣胀,這些符號帶有許多語義信息刁赦,很容易被反編譯成 Java 源代碼。為了防止這種現(xiàn)象灵临,我們可以使用 Java 混淆器對 Java 字節(jié)碼進行混淆截型。

混淆就是對發(fā)布出去的程序進行重新組織和處理,使得處理后的代碼與處理前代碼完成相同的功能儒溉,而混淆后的代碼很難被反編譯宦焦,即使反編譯成功也很難得出程序的真正語義。被混淆過的程序代碼顿涣,仍然遵照原來的檔案格式和指令集波闹,執(zhí)行結(jié)果也與混淆前一樣,只是混淆器將代碼中的所有變量涛碑、函數(shù)精堕、類的名稱變?yōu)楹喍痰挠⑽淖帜复枺谌狈ο鄳?yīng)的函數(shù)名和程序注釋的況下蒲障,即使被反編譯歹篓,也將難以閱讀。同時混淆是不可逆的揉阎,在混淆的過程中一些不影響正常運行的信息將永久丟失庄撮,這些信息的丟失使程序變得更加難以理解。

混淆器的作用不僅僅是保護代碼毙籽,它也有精簡編譯后程序大小的作用洞斯。由于以上介紹的縮短變量和函數(shù)名以及丟失部分信息的原因, 編譯后 jar 文件體積大約能減少25% 坑赡,


Android混淆打包經(jīng)驗總結(jié)

android混淆傻瓜式教程,直接拿去用

android那些事--混淆語法

2烙如、ProGuard技術(shù)功能

壓縮 shrink :偵測并移除代碼中無用的類、字段毅否、方法和屬性.

優(yōu)化 optimize :對字節(jié)碼進行優(yōu)化,移除無用的指令.

混淆 obfuscator :使用a,b,c,d這樣簡短而無意義的名稱,對類,字段和方法進行重命名.

預(yù)檢測 preverifier :在Java平臺上對處理后的代碼進行校驗.


3亚铁、proguard工作原理


EntryPoint

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市搀突,隨后出現(xiàn)的幾起案子刀闷,更是在濱河造成了極大的恐慌熊泵,老刑警劉巖,帶你破解...
    沈念sama閱讀 206,839評論 6 482
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件甸昏,死亡現(xiàn)場離奇詭異顽分,居然都是意外死亡,警方通過查閱死者的電腦和手機施蜜,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,543評論 2 382
  • 文/潘曉璐 我一進店門卒蘸,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人翻默,你說我怎么就攤上這事缸沃。” “怎么了修械?”我有些...
    開封第一講書人閱讀 153,116評論 0 344
  • 文/不壞的土叔 我叫張陵趾牧,是天一觀的道長。 經(jīng)常有香客問我肯污,道長翘单,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 55,371評論 1 279
  • 正文 為了忘掉前任蹦渣,我火速辦了婚禮哄芜,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘柬唯。我一直安慰自己认臊,他們只是感情好,可當(dāng)我...
    茶點故事閱讀 64,384評論 5 374
  • 文/花漫 我一把揭開白布锄奢。 她就那樣靜靜地躺著失晴,像睡著了一般。 火紅的嫁衣襯著肌膚如雪拘央。 梳的紋絲不亂的頭發(fā)上师坎,一...
    開封第一講書人閱讀 49,111評論 1 285
  • 那天,我揣著相機與錄音堪滨,去河邊找鬼。 笑死蕊温,一個胖子當(dāng)著我的面吹牛袱箱,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播义矛,決...
    沈念sama閱讀 38,416評論 3 400
  • 文/蒼蘭香墨 我猛地睜開眼发笔,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了凉翻?” 一聲冷哼從身側(cè)響起了讨,我...
    開封第一講書人閱讀 37,053評論 0 259
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后前计,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體胞谭,經(jīng)...
    沈念sama閱讀 43,558評論 1 300
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,007評論 2 325
  • 正文 我和宋清朗相戀三年男杈,在試婚紗的時候發(fā)現(xiàn)自己被綠了丈屹。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 38,117評論 1 334
  • 序言:一個原本活蹦亂跳的男人離奇死亡伶棒,死狀恐怖旺垒,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情肤无,我是刑警寧澤先蒋,帶...
    沈念sama閱讀 33,756評論 4 324
  • 正文 年R本政府宣布,位于F島的核電站宛渐,受9級特大地震影響竞漾,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜皇忿,卻給世界環(huán)境...
    茶點故事閱讀 39,324評論 3 307
  • 文/蒙蒙 一畴蹭、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸相味。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,315評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽罗岖。三九已至,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間右犹,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,539評論 1 262
  • 我被黑心中介騙來泰國打工姚垃, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留念链,地道東北人。 一個月前我還...
    沈念sama閱讀 45,578評論 2 355
  • 正文 我出身青樓积糯,卻偏偏與公主長得像掂墓,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子看成,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 42,877評論 2 345

推薦閱讀更多精彩內(nèi)容