摘要: 最近在反编译时,修改包名,反编译回去时,遇到一个问题: 这样看来应该是原包对包名进行了验证,那么该如何处理呢? 首先可以直接去public.xml里面去找一下“The Application bundle is has been modified. Please build the app agai 阅读全文
posted @ 2017-05-08 00:33 TwoFish 阅读(747) 评论(0) 推荐(0) 编辑
摘要: 在开发SDK的过程中,遇到了一个研发,使用了自己的SDK之后遇到了各种问题,于是我们自己帮忙接入。 所有代码都接入完成之后,准备export出一个release包,但是此时却报错: 此时出现了很多的warning,要求修改,并且还退出了编译,导致打包失败。 仔细看了一下相关的warning的提示,都 阅读全文
posted @ 2017-01-11 17:37 TwoFish 阅读(5589) 评论(0) 推荐(0) 编辑
摘要: 关于OOM_ADJ说明: Android 进程易被杀死的情形: 参考:Android进程保活招式大全 阅读全文
posted @ 2016-09-04 21:14 TwoFish 阅读(189) 评论(0) 推荐(0) 编辑
摘要: 解决: from:pushing-to-git-returning-error-code-403-fatal-http-request-failed 阅读全文
posted @ 2016-07-06 22:49 TwoFish 阅读(313) 评论(0) 推荐(0) 编辑
摘要: (1).设置图片缓存大小,一般可以设置为内存的1/8 (2). (3). App的启动页可使用Activity的theme属性来设置,这样主界面未加载完成时就显示theme,加载完成后在Activity的onCreate函数中再设置setTheme(null)来销毁这个启动页,加载正常界面即可。比单 阅读全文
posted @ 2016-06-21 01:47 TwoFish 阅读(162) 评论(0) 推荐(0) 编辑
摘要: 有的列表可能notifyDataSetChanged()代价有点高,最好能局部刷新。 局部刷新的重点是,找到要更新的那项的View,然后再根据业务逻辑更新数据即可。 强调一下,最后那个列表数据别忘记更新, 不然数据源不变,一滚动可能又还原了。 阅读全文
posted @ 2016-06-21 01:39 TwoFish 阅读(1645) 评论(0) 推荐(0) 编辑
摘要: 1 public static void printMap(Map mp) { 2 Iterator it = mp.entrySet().iterator(); 3 while (it.hasNext()) { 4 Map.Entry pair = (Map.Entry)it.next(); 5 System.out.println(pair.g... 阅读全文
posted @ 2016-04-10 15:37 TwoFish 阅读(266) 评论(0) 推荐(0) 编辑
摘要: 在Android中经常需要创建一个循环线程,有耗时操作时候,放到里面去操作,如果没有耗时操作,就让该线程处于等待,但是不要杀死它, 最好不要一旦有耗时任务,就立刻创建一个新线程,因为会有性能问题。 HandlerThread的父类是Thread,内部会有一个looper循环: 首先看一下Handle 阅读全文
posted @ 2016-04-10 15:03 TwoFish 阅读(2501) 评论(0) 推荐(0) 编辑
摘要: targetSdkVersion是Android提供向前兼容的主要依据,在应用的targetSdkVersion没有更新之前,系统不会应用最新的行为变化 比如设置了app的targetSdkVersion是23,那么Google会认为你当前的应用已经完全适配了Android 6.0, 所以在Andr 阅读全文
posted @ 2016-04-09 00:18 TwoFish 阅读(418) 评论(0) 推荐(0) 编辑
摘要: 设备ID(DeviceId) 获取办法 1 android.telephony.TelephonyManager tm = (android.telephony.TelephonyManager) context.getSystemService(Context.TELEPHONY_SERVICE) 阅读全文
posted @ 2016-04-08 22:42 TwoFish 阅读(1120) 评论(0) 推荐(0) 编辑