android最佳實踐(五)

2021-09-19 10:35:38 字數 1841 閱讀 5918

這是乙個系列,我們將其命名為android最佳實踐,如果你還沒有看之前的文章:

android最佳實踐(一)

android最佳實踐(二)

android最佳實踐(三)

android最佳實踐(四)

上一節,我們編寫了contact模組,該模組能夠很方便的使用聯絡人和自定義聯絡人介面,春節過後,我編寫了基於okhttp模組,發現gradle的編譯仍然巨慢,那麼就先解決gradle的編譯問題吧。

開啟daemon

如果你不知道什麼事daemon,可以參考我的gradle for android 第一篇( 從 gradle 和 as 開始 ),你需要做的是在gradle.properties檔案中加入:

org.gradle.daemon=true
開啟多執行緒編譯
org.gradle.parallel=true
當你開啟了這些配置,依然覺得很慢,你是否想過即時執行

開啟即時執行的前提是,你的android studio版本基於android2.0以上,那麼公升級為android2.0後,你需要進行哪些操作呢。

首先:

update你的工程,會修改你的gradle檔案:

classpath 'com.android.tools.build:gradle:2.0.0-beta4'
這時候,有人會問我,如何公升級到android2.0,在此我就不介紹了,直接上鏈結

即時執行有多強大,給你乙個圖,自己感受下:

如何執行:

so easy,初始的使用直接執行,當修改**後再次執行即可。

具體如何判斷呢:

activitycompat.requestpermissions(mactivity, permissions_contact, request_contacts);
public void onrequestpermissionsresult(int requestcode, @nonnull string permissions, @nonnull int grantresults)
主要涉及到以上2個方法,當然fragment會有所不同,具體**編寫,可以參照github上的contact模組,

android 6.0的許可權問題確實給開發者帶來了開發難度,那麼如何降低難度呢,在此向大家介紹permissionsdispatcher框架,如果你使用過greendao,那麼使用permissionsdispatcher將會很簡單,也很容易理解其原理,具體如何使用在此不介紹。

基於註解,且無反射,你需要在你的activity或者fragment類上定義@runtimepermissions,然後你需要在你的方法上定義@needspermission

然後更新你的專案,其會為你自動生成類。

你要做的事委託給生成的類:

mainactivitypermissionsdispatcher.showcamerawithcheck(this);
@override

public void onrequestpermissionsresult(int requestcode, string permissions, int grantresults)

詳細的說明,以及使用指南和**檢視,可在之後的博文中講解。

Android 塗鴉最佳實踐

android中實現手勢畫圖一般都兩種方式,一是直接在view上繪製,而是使用su ceview。兩者還是有一些差別的。簡介下。view 顯示檢視,內建畫布,提供圖形繪製函式 觸屏事件 按鍵事件函式等 必須在ui主線程內更新畫面。速度較慢。su ceview 基於view檢視進行拓展的檢視類。更適合...

Android登入頁面的最佳實踐

在應用開發的過程中,有次ui設計的頁面讓我為難了,要求頁面如下 左側是標題,右側是輸入框,要求標題左對齊,輸入框左右對齊,同時表單中標題字數長度不等。當時分析了常用的線性布局和相對布局之後都沒有漂亮的解決辦法。由於專案的時間要求,我只能讓每一行都用線性布局,標題設定最大長度,這樣子的缺點就是不同的手...

最佳實踐 Flutter 最佳實踐

最佳實踐是乙個領域可以接受的專業標準,對於任何程式語言來說,提高 質量 可讀性 可維護性和健壯性都非常重要。讓我們探索一些設計和開發flutter應用程式的最佳實踐。class enum typedef和extension應採用駝峰命名uppercamelcase規則。class mainscree...