- 博客(106)
- 资源 (29)
- 收藏
- 关注
转载 Android 解决65535的限制 使用android-support-multidex解决Dex超出方法数的限制问题,让你的应用不再爆棚
随着应用不断迭代,业务线的扩展,应用越来越大(比如集成了各种第三方sdk或者公共支持的jar包,项目耦合性高,重复作用的类越来越多),相信很多人都遇到过如下的错误:[java] view plaincopyUNEXPECTED TOP-LEVEL EXCEPTION: java.lang.IllegalArgumentException:
2016-02-15 11:05:07
1440
转载 AndFix 热补丁修复
本文转自http://blog.youkuaiyun.com/lpftobetheone/article/details/50435371搜索发现有这3种方式可以实现(至于其他的方式,暂不清楚)1.dexposed github https://github.com/alibaba/dexposed2.andfix github https://github.com
2016-01-05 09:12:46
11479
2
转载 Android APP增量更新
最近项目推进app的增量更新方案,特意看了几篇文章,先来两个博客地址http://my.oschina.net/liucundong/blog/160436https://github.com/cundong/SmartAppUpdates 主要是通过使用bsdiff和bspatch,实现Android应用的增量更新. 增量更新的原理非常简单,就是将手机上已安装apk与服务器
2015-12-23 19:46:19
4567
转载 Android处理崩溃的一些实践
对于任何程序来说,崩溃都是一件很难避免的事情,当然Android程序也不例外。在Android程序中,引起崩溃的多属于运行时异常或者错误,对于这些异常我们很难做到类似Checked Exception那样显式捕获,因而最终导致了程序崩溃。本文讲介绍一些如何处理崩溃的实践,比如收集崩溃的stacktrace,甚至如何避免出现程序已停止的对话框。如何收集崩溃信息收集崩溃信息,可以更好的
2015-12-10 09:06:53
5207
原创 wheelview 省市区android
最近项目中用到wheelview效果,参考了大神Hongyang的实现思路,然后在github上merge了一个库,主要的工作是修复了各种异常情况下的bug效果图:ps:用到了一个json文件以及解析拼接我们需要的数据json数据文件我已经放到压缩包里面了,我们通过读取assert中的json,拼接为三个list,来适配我们的view主要代码如下:1:初始化
2015-11-26 19:45:49
2453
原创 支付宝账单分组、刷新、加载更多效果实现
项目中账单需要做二期优化,支付软件嘛当然向支付宝看齐了。。分析了下支付的实现,github了一圈最后回到代码中,merge了两个哥们的开源项目【开源就是好】。。我主要分析一下整个merge的代码: 1:定义我们下拉刷新和上拉加载的类【两个LinearLayout】 自定义的LinearLayout包含动画效果、进度条控制、 2:定义我们的SectionBaseA
2015-10-30 09:05:11
4492
转载 Android应用调度初始化流程优化方案
Init帮助Android应用调度初始化流程,囊括类型、优先级、多进程,清理原来为每个进程判断是否要执行的神奇代码逻辑(你应该知道每个进程),提高应用启动效率。尽管Init设计的初衷是为了应用(application)初始化,但并不局限于此,它可以于应用在任何复杂的初始化流程。Init不依赖于任何第三方库,使用Java concurrent并部分依赖于Android SDK(Con
2015-10-05 14:09:10
1202
转载 Java finished with non-zero exit value 2 - Android Gradle
Error:Execution failed for task ':dexDebug'.> com.android.ide.common.process.ProcessException: org.gradle.process.internal.ExecException: Process 'command '/home/tim/soft/jdk1.8.0/bin/java'' finished
2015-10-02 20:15:35
2161
转载 android开发之android:process属性_application中onCreate执行多次
应用做的匆忙,很多地方只顾实现功能,没有兼顾好性能,所以停下来重构代码优化性能,结果在打log看启动时间的时候,发现Application的onCreate执行了多次,这样导致重复初始化资源,初始化了3次导致接近1s时间。发现这个是由独立进程引起的。即:process这个属性。android:process 服务所在进程的名字。通常,一个应用的所有
2015-09-26 14:29:22
1316
原创 Android设备唯一性判断
前段时间项目需要一个功能,就是在操作完某一个逻辑之后返回给客户一个红包,安全校验团队需要我们提供android设备的唯一标示,起初直接通过获取设备的imei号传给了server端,后台公司云迹监控发现,有些设备的imei号是0000000000000000,这样失去了设备唯一性验证的功能,第二个版本做了一个修复,除了获取imei号之外还新增了AndrdoiId的处理,不过悲剧的是android 设
2015-09-17 19:20:22
4073
3
转载 Proguard 部分类不混淆的技巧
两年前在 Proguard 语法及常用 proguard.cfg 代码 中介绍过一些 Proguard 的基础知识,其中提到一些类不能混淆,比如实现了 Serializable 接口的,否则反序列化时会出错。这种情况我们可以简单的通过在 proguard-rules.pro 配置文件中添加配置,对于较早 Android 项目默认配置文件可能为 proguard.cfg,如下: -ke
2015-08-28 16:58:36
15997
转载 Android APP内存优化之图片优化
在知乎上看到一篇很好的博客,转来看看 网上有很多大拿分享的关于Android性能优化的文章,主要是通过各种工具分析,使用合理的技巧优化APP的体验,提升APP的流畅度,但关于内存优化的文章很少有看到。在Android设备内存动不动就上G的情况下,的确没有必要去太在意APP对Android系统内存的消耗,但在实际工作中我做的是教育类的小学APP,APP中的按钮、背景、动画变换基本上全是图片
2015-07-14 20:11:15
2615
原创 Android中apk动态加载技术研究(2)android插件化及实现
了解了android中类加载的前期知识点后,来看看android中DexClassLoader具体的实现 具体加载流程如下: 宿主程序会到文件系统比如SD卡中去加载APK【1】,然后通过一个叫proxy的Activity去执行apk中的Activity 关于动态加载ap,理论上可用用到DexClassLoad、PathClassLoader、URLClassLoade
2015-07-01 16:13:39
2091
原创 Android中apk动态加载技术研究(1)基础知识研修
java classloader 和android中DexClassloader对比: Java ClassLoader : 作用: 主要用来加载class 到jvm中,以供程序使用,也就是说:java程序可以动态加载类定义,而这个动态加载机制就是通过ClassLoader来实现的 核心loader: A:: bootstrap classloader(启动类
2015-07-01 10:31:38
1282
原创 项目BUG总结2
继续项目bug总结 B1:java.lang.InstantiationException: can't instantiate class com.jone.test.myfragmetn; no empty constructor 看字面意思是fragment缺少一个空的构造函数,这个奇葩问题找了好长一段时间,最终定位是有人写了一个Fragment的有参数的构造器去传
2015-05-11 10:45:52
1009
原创 项目BUG总结1
项目上线一段时间后,加入了公司的监控平台,奔溃还真是不少。。公司的无线环境和高配置的手机几乎任何bug都没测出来,经过一段时间的fix,总结下结果防止以后再犯同样的错误 B1: java.lang.ClassCastException 出现这个错误表示很蛋疼,原因是我们居然导入了两个不同版本的zxing包,这个问题是由于大意造成的以后一定要清理包中无用的代码,特别是功能相同已经
2015-05-11 09:38:13
2317
原创 android 中本地java代码与html交互总结
在开发android过程中,有时需要接入一些html来完成一些工作,这就会涉及到本地code与html的交互,总结下这段时间接入过程中遇到的问题 1:如果请求头为https,则onReceivedSslError需设置为 @Override public void onReceivedSslError(WebView view, SslErrorHandler
2015-05-04 19:30:39
1671
转载 EditText 中google原生态键盘del键无法响应onkeyListener事件
在自定义了一个网格EditText后,起初允许完美,后来测试发现一个问题:在nexus系列手机上使用原始的键盘删除键完全不会响应、、、直接毁三观了。。。。。。可能是android系统对键盘响应的处理上做了一些不为人知的设置,反正是不响应onKeyListener事件;通过几个小时的搜寻,在StackOverflow上终于找到了解决方案给个链接大家先可以自己瞅瞅:http://stackover
2015-04-28 09:42:38
2992
转载 Android中Cannot draw recycled bitmaps
java.lang.IllegalArgumentException: Cannot draw recycled bitmapsat android.view.GLES20Canvas.drawBitmap(GLES20Canvas.java:778)at android.view.GLES20RecordingCanvas.drawBitmap(GLES20RecordingCanvas.jav
2015-04-27 10:01:47
1588
转载 Fragment提交transaction导致state loss异常
下面自从Honeycomb发布后,下面栈跟踪信息和异常信息已经困扰了StackOverFlow很久了。java.lang.IllegalStateException: Can not perform this action after onSaveInstanceState at android.support.v4.app.FragmentManagerImpl.checkStateLo
2015-04-17 10:23:50
1165
原创 Android中Parcelable序列化总结
在使用Parcelable对android中数据的序列化操作还是比较有用的,有人做过通过对比Serializable和Parcelable在android中序列化操作对象的速度比对,大概Parcelable相比Serializable要快10倍左右、、、给一个连接可以瞅瞅他们序列化的区别http://greenrobot.me/devpost/android-parcelable-serializ
2015-04-13 15:18:33
3373
原创 android中关闭所有activity方法
在android中退出app时关闭所有Activity的方式有很多,例如发送一个全局的BroadCast、直接杀死当前的pid、、、但是如果我们做的功能是一个sdk那情况就不一样了。。经过项目上线后惨痛的教训我们决定还是通过自定义Stack来管理我们的activity。 首先说说这个坑人的BroadCast,因为我们发送的是无序广播,不知道那个Activity会先收到,这个导致了一个
2015-04-13 11:29:03
5940
原创 仿微信/支付宝的密码输入框效果 android
在用到支付类app时,都有一个简密的输入框。。开始实现的时候思路有点问题,后来到github上搜了下,找到了一个开源的库看起来相当的牛逼,,来个地址先:https://github.com/Jungerr/GridPasswordView效果图:这个开源库我研究了之后,又有了自己的一个思路:来个假的简密框---底部放一个EditTextView,顶部放置6个ImageVie
2015-03-16 16:25:37
40419
1
原创 欢迎使用优快云-markdown编辑器
欢迎使用Markdown编辑器写博客本Markdown编辑器使用StackEdit修改而来,用它写博客,将会带来全新的体验哦:Markdown和扩展Markdown简洁的语法代码块高亮图片链接和图片上传LaTex数学公式UML序列图和流程图离线写博客导入导出Markdown文件丰富的快捷键快捷键加粗 Ctrl + B 斜体 Ctrl + I 引用 Ctrl
2015-03-16 16:13:24
564
原创 What to do on TransactionTooLargeException?
在android中,intent传递数据有时候会出现以下的错误:java.lang.RuntimeException: Adding window failedat android.view.ViewRootImpl.setView(ViewRootImpl.java:548)at android.view.WindowManagerImpl.addView(WindowManagerIm
2015-03-10 10:51:06
5120
1
转载 Android手动回收bitmap,引发Canvas: trying to use a recycled bitmap处理
在做Android的开发的时候,在ListView 或是 GridView中需要加载大量的图片,为了避免加载过多的图片引起OutOfMemory错误,设置了一个图片缓存列表 Map<String, SoftReference> imageCache , 并对其进行维护,在图片加载到一定数量的时候,就手动回收掉之前加载图片的bitmap,此时就引起了如下错误: java.lang.Runti
2015-03-04 19:30:48
6795
原创 通过Activity的ViewGroup添加ProgressBar
ProgressBar是一个常见的组件,我们可以通过多种方式来实现一个progressBar,有一种方式是通过一个Activity的的window来放置一个bar,因为android中大家都知道的关联关系是:Activity->Window->View[ViewGroup] ,那我们通过当前Activity的window来加载一个progressBar,当我们把这个Activity作为一个基类的
2015-02-02 19:32:27
1834
转载 android 用 XML 自定义边框(只上下边框有色)
这也是一个转帖,前段时间要用到的这个效果,背景宽开始ui给的图上下左右都有边框,但是需要一个重叠的效果,两条线重合的话就变的不好看被加粗了,就想着定义一个边框,只有上、左、右有边框,而下边没有边框搜到一个解决后的方法,也顺便记录一下 <item android:bottom="1dp" android:top="1dp
2015-01-20 11:18:04
35077
原创 Fragment Activity 中startActivityForResult的回调
通过startActivityForResult在两个Activity之间传递数据应该没有任何问题,标准的模式为:package com.ljq.activitys;import android.app.Activity;import android.content.Intent;import android.os.Bundle;import android.util.Log;im
2015-01-14 16:26:43
18289
4
原创 fastJson使用
对于服务端返回的json格式数据,解析的方案还是不比较多的,这里推荐 fastjson,原因是使用简单、效率还是比较高的 fastjson主要是我们在解析的时候要有对应的本地Bean来承接返回的jsonObject和jsonArray,直接通过一个例子来看看: 假设我们从服务端获取的数据为: String response = "{\"id\":\"2\",\"name\":\
2014-12-13 19:34:23
2507
转载 Fragment中的懒加载
我们在做应用开发的时候,一个Activity里面可能会以viewpager(或其他容器)与多个Fragment来组合使用,而如果每个fragment都需要去加载数据,或从本地加载,或从网络加载,那么在这个activity刚创建的时候就变成需要初始化大量资源。这样的结果,我们当然不会满意。那么,能不能做到当切换到这个fragment的时候,它才去初始化呢?答案就在Fragment里的setU
2014-11-07 09:35:33
2954
1
转载 android中缓存策略
先给两个超级棒的连接http://blog.youkuaiyun.com/guolin_blog/article/details/28863651
2014-11-04 15:55:13
6226
转载 Fragment的陷阱
以前做过的一个项目,Fragment嵌套高德地图,当再次进入Fragment的时候,会出现奇怪的现象。嵌套的地图会出现滑动不动的情况,起先还以为是高德的bug呢,经过一番研究,终确定这是一个坑。一般很容易会被大家忽略了一个问题。那就是当和Fragment关联的view hierarchy正在被移除时,不会执行onDestroy()方法,而是会调用onDestroyView()。比如 Vie
2014-11-03 16:20:36
898
转载 Android多线程下安全访问数据库
为了记录如何线程安全地访问你的Android数据库实例,我写下了这篇小小札记。文章中引用的项目代码请点击这里 假设你已编写了自己的 SQLiteOpenHelper。public class DatabaseHelper extends SQLiteOpenHelper { ... } 现在你想在不同的线程中对数据库进行写数据操作:// Th
2014-09-28 15:35:55
6373
转载 android联系人中英文混合排序
getContentResolver().query(。。。),最后一个sortOrder参数设置为" sort_key COLLATE LOCALIZED ASC"测试2.1以上。2.0以下有所不同
2014-09-26 16:45:12
2666
android增量更新
2015-12-23
WebpDemo案例
2015-07-14
DownloadManagerNotification多线程下载通知栏【使用intentService版本】
2014-11-07
DownloadManagerNotification多线程下载通知栏
2014-11-06
Fragment使用手势操作
2014-01-03
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人