推薦一個很好用的android集合工具類AndroidUtilCode

AndroidUtilCode
這個工具類在github有17k+的star,有着很強的集合性,此工具類包括緩存,圖片,權限,文件,單位轉換,編解碼等等的集成,可以通過自身需要進行裁剪。因爲作者的編碼風格,可以聯想到這傢伙應該寫過彙編,編碼覆蓋方面很全,編碼整潔舒適。不過,我使用的小米機型少部分功能存在崩潰和不能使用現象,以及部分的顯示效果不佳。建議大家所有功能慎用,一定要經過測試。

暫時記錄部分出問題的。
測試出閃爍:
關閉非當前的頁面:ActivityUtils.finishActivity(MainActivity.class);
關閉所有頁面:ActivityUtils.finishAllActivities();

有誤:
AppUtils.getAppPath()-實際顯示了apk路徑
AppUtils.installAppSilent(Config.TEST_APK_PATH)-沒有進行靜默安裝,但提示成功
AppUtils.uninstallApp(Config.TEST_PKG);-這個同理是靜默卸載,也是失敗的
異常重啓那裏,重啓的有問題,有的還能返回,有的再返回會卡頓。建議改爲如下寫法:

  Intent intent = new Intent(ActivityUtils.getTopActivity(), MainActivity.class);
        intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TASK | Intent.FLAG_ACTIVITY_NEW_TASK);
        startActivity(intent);

Activity和fragment的initData()都有問題,不能運行到那個位置。或者正常都寫在initView,重新加載bundle數據的寫initData,不要把變量初始化放在此處。

大多部分好用,作者對android內部的方法很熟悉,很多通過調用反射,內部方法等方式減少了傳參數量,即便不太想用的也可以學習到部分android內部方法的使用。
另外,作者用了測試類,可以學着寫寫測試。

推薦1:ActivityUtil
最喜歡的是ActivityUtil.getTopActivity(),可以減掉好多地方的參數,startActivity什麼的再也不用把Activity對象傳來傳去;

推薦2:BarUtils
狀態欄相關,集成了顏色和透明度的效果。

BarUtils.setStatusBarColor(this, mColor, mAlpha);

推薦3:PermissionUtil
比已經存在的RxPermisson,AndPermission好用多了,直接回調就能搞定,不用囉嗦的還要寫什麼請求碼,不用覆蓋父類方法,也不用onActivityResult再求回調什麼的。原理就是內部封裝了一個Activity偷偷啓動,然後根據此Activity回調確定結果。

PermissionUtils.permission(PermissionConstants.MICROPHONE)
                        .rationale(new PermissionUtils.OnRationaleListener() {
                            @Override
                            public void rationale(final ShouldRequest shouldRequest) {
                                //拒絕過顯示提示,要求下一次通過
                                DialogHelper.showRationaleDialog(shouldRequest);
                            }
                        })
                        .callback(new PermissionUtils.FullCallback() {
                            @Override
                            public void onGranted(List<String> permissionsGranted) {
                            //通過
                                updateAboutPermission();
                                LogUtils.d(permissionsGranted);
                            }

                            @Override
                            public void onDenied(List<String> permissionsDeniedForever,
                                                 List<String> permissionsDenied) {
                                                 //拒絕,非永久拒絕跳設置
                                if (!permissionsDeniedForever.isEmpty()) {
                                    DialogHelper.showOpenAppSettingDialog();
                                }
                                LogUtils.d(permissionsDeniedForever, permissionsDenied);
                            }
                        })
                        .request();

其他,比如LogUtils比較有用,不過作者配置的太複雜了,建議用默認

LogUtils.d("xx");
LogUtils.json(json);
LogUtils.xml(xml);

其他的當然也不錯,但這幾項更常用一些,就這樣。

發佈了155 篇原創文章 · 獲贊 33 · 訪問量 14萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章