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);
其他的當然也不錯,但這幾項更常用一些,就這樣。