Android作為目前互聯(lián)網(wǎng)領域的熱門架構系統(tǒng),其發(fā)展一直在業(yè)內(nèi)保持著很高的熱度。那么技術人員在Android構建應用程序的過程中應該注意哪些問題呢?中培偉業(yè)《Android APP開發(fā)架構應用實戰(zhàn)》專家隋老師根據(jù)自己多年的從業(yè)經(jīng)驗,在這里就Android構建應用程序應注意的有關問題進行了詳細介紹。隋老師指出,在構建 Android應用程序的過程中,應該注意以下問題:
1、添加使用第三方依賴庫前,請再三思考,它絕對是一個慎重的決定;
2、如果用戶看不見有些界面, 請一定不要繪制它!;
3、除非真的需要,否則不要使用數(shù)據(jù)庫;
4、應用程序中 65k 方法數(shù)的限制很快就能達到,我意思是真的很快!不過 multidexing 能拯救你;
5、RxJava 是對 AsyncTask 和其它異步任務類 最好的替代品;
6、Retrofit是目前 android 最好的處理網(wǎng)絡事務的依賴庫
7、使用 Retrolambda 來精簡你的代碼;
8、把 RxJava 與 Retrofit 和 Retrolambda 整合在一起 來達到最佳效果!;
9、EventBus 非常好用, 但是我不會使用太多因為它會讓代碼庫變得更混亂;
10、按照應用功能來封裝,而非所屬類別;
11、把每一個事務都從應用程序主線程移除;
12、lint 這個工具能幫助優(yōu)化你的界面和層級,所以你能識別出哪些是可能被移除的重復13、如果你正在用 gradle , 盡你所能加速它的執(zhí)行效率;
14、執(zhí)行一個 Profile report / 構建分析報告 來檢查下構建的過程中時間都花費在哪里了;
15、使用一個 眾所周知的代碼架構;
16、測試會花費很多時間,一旦你被某個問題困住,你就會明白有了測試用例會讓你提高開發(fā)效率并且增加應用程序的健壯性。 ;
17、請使用 依賴注入來使你的應用程序更模塊化,因此它也更加容易被測試;
18、收聽 Fragmented 播客 會大大幫助你;
19、永遠不要 使用你的個人 email 作為 android 應用發(fā)布市場的賬號名;
20、請一直使用 合適的 輸入類型;
21、使用 Analytics 來查找可用的模式和分離 bug;
22、保持最新的 依賴庫(使用 dryrun 來更快的測試他們);
23、你的服務應該盡快執(zhí)行所需要的任務并且及時被終止;
24、使用 Account Manager來提示登錄的用戶名和 email 地址;
25、使用 CI (持續(xù)集成) 來構建和分發(fā)你的測試和生產(chǎn)環(huán)境的 apk;
26、請不要建立和運行你自己的 CI 服務器,維護這個服務器是很耗時的,因為會有磁盤空間問題,磁盤安全性問題 / 升級服務器來避免來自 SSL 漏洞的攻擊,等等。可以使用 circleci,travis,shippable,他們不是很貴并且只需要關注價格就行;
27、使用 playstore 來自動化你的發(fā)布過程;
28、如果一個依賴庫很龐大并且你只是使用其中一小部分的功能,你應該考慮一些其他更精簡的選擇 (比如可以依賴 proguard);
29、不要使用你不需要的模塊。如果那個模塊并不需要常常修改,考慮從零開始構建的時間是很重要的(使用 CI 構建就是一個很好的例子),或者檢查之前那個單獨構建的模塊是否是最新的,相比起來只是簡單的裝載那些二進制的 .jar/.aar 依賴庫,它能帶來 4 倍的提升;
30、開始考慮用 SVG 替換 PNG;
31、如果你只需要改變一個地方(例如,AppLogger.d(“message”) 能包含 Log.d(TAG, message) 并且之后發(fā)現(xiàn)Timber.d(message) 會是一個更好的解決方案),為依賴庫制作抽象的類會讓切換到新庫變得很容易;
32、監(jiān)視連接狀態(tài)和連接的種類 (在 WIFI 連接狀態(tài)下,是不是有更多的數(shù)據(jù)更新?);
33、監(jiān)視電源和電池 (在充電的過程中,是不是有更多的數(shù)據(jù)更新? 當電池電量低的時候,更新過程會不會被暫緩);
34、如果一個笑話是需要解釋才能明白的話,那肯定是一個失敗的笑話,用戶界面亦是如此;
35、測試能帶來性能的提升: 慢工出細活(并且保證內(nèi)容的正確性),之后驗證優(yōu)化,這不會影響任何測試內(nèi)容。