編輯:關於Android編程
安卓代碼混淆時經常會出現各種問題,下面羅列一些注意事項 1.依賴的工程中使用的jar包若和工程自身中的jar包一樣的話,直接刪除依賴工程中相同的jar包即可 2.native方法要阻止混淆 例: # natvie 方法不混淆 -keepclasseswithmembernames class * { native; } 3.若自定義基類Activity中有根據名稱為控件注入值的要采用如下方法阻止字段被混消 如 基類Activity中有如下控件注入方法 protected void smartInject() { Class clz=getClass(); Field[] fs=clz.getDeclaredFields(); Resources res = getResources(); String packageName = getPackageName(); for (Field field : fs) { if (!View.class.isAssignableFrom(field.getType())) { continue; } int viewId = res.getIdentifier(field.getName(), id, packageName); if (viewId==0) continue; field.setAccessible(true); try { View v=findViewById(viewId); field.set(this,v); Class c=field.getType(); Method m=c.getMethod(setOnClickListener, android.view.View.OnClickListener.class); m.invoke(v, this); } catch (Throwable e) { // e.printStackTrace(); } field.setAccessible(false); } } -keep class 應用包名.R$id{*;} -keep public class * extends 包名.基類Activity { ; } 3.常見的一些阻止代碼混淆的寫法 -keep class com.iflytek.**{*;} -libraryjars libs/BaiduLBS_Android.jar -libraryjars libs/fastjson-1.1.39.jar -libraryjars libs/bcprov-jdk15-143.jar -libraryjars libs/android-support-v4.jar -keep class com.baidu.** { *; } -keep class vi.com.gdi.bgl.android.**{*;} -keep class okio.** {*;} -dontwarn okio.** -dontwarn com.alibaba.** -dontwarn org.bouncycastle.** -keepattributes Signature -keepattributes *Annotation*
【Activity】 一個Activity是一個應用程序組件,提供一個屏幕,用戶可以用來交互為了完成某項任務,例如撥號、拍照、發送email、看地圖。每一個activi
先上效果圖:這個效果一開始我是想直接讓UI給個切圖,後來發現這樣不行,適配很差,達不到效果。所以就自己動手寫代碼,其實思路也很簡單:在這個布局的父布局上面再手動添加一個v
RecyclerView出現已經有一段時間了,相信大家肯定不陌生了,大家可以通過導入support-v7對其進行使用。 據官方的介紹,該控件用於在有限的窗口中展示大量數據
華為p9怎麼隱藏導航欄?華為p9隱藏導航欄方法是什麼?華為p9是華為今年推出的一款高端機,華為p9有許多方便好用的功能,比如你可以隱藏手機導航欄,那麼華為p