详细分析Android及Java中访问https请求exception(SSLHandshakeException, SSLPeerUnverifiedException)的原因及解决方法。
1、现象
用Android(或Java)测试程序访问下面两个链接。
https链接一:web服务器为j[......]
Category Archives: Android
性能优化系列总篇
本文为性能优化系列的总纲,主要介绍性能调优专题计划、何为性能问题、性能调优方式及前面介绍的数据库优化、布局优化、Java(Android)代码优化、网络优化具体对应的调优方式。
1、调优专题博客计划
目前性能优化专题已完成以下部分:
性能优化之Java(Android)代码优化
本文为Android性能优化的第三篇——Java(Android)代码优化。主要介绍Java代码中性能优化方式及网络优化,包括缓存、异步、延迟、数据存储、算法、JNI、逻辑等优化方式。(时间仓促,后面还会继续完善^_*)
目前性能优化专题已完成以下部分:
性能优化之布局优化
本文为Android性能优化的第二篇——布局优化,主要介绍使用抽象布局标签(include, viewstub, merge)、去除不必要的嵌套和View节点、减少不必要的infalte及其他Layout方面可调优点,顺带提及布局调优相关工具(hierarchy viewer和lint)。
&[......]
性能优化之数据库优化
本文为性能优化的第一篇——数据库性能优化,原理适用于大部分数据库包括Sqlite、Mysql、Oracle、Sql server,详细介绍了索引(优缺点、分类、场景、规则)和事务,最后介绍了部分单独针对Sqlite的优化。
目前性能优化专题已完成以下部分:
Android 图片OutOfMemory异常bitmap size exceeds VM budget的原因及解决方法
主要介绍Android图片oom问题的原因及解决方法,顺带提及Dalvik heap size。
1、现象
很多朋友应该都碰到过下面这个异常
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
FATAL EXCEPTION: main java.lang.OutOfMemoryError: bitmap size exceeds VM budget at android.graphics.BitmapFactory.nativeDecodeAsset(Native Method) at android.graphics.BitmapFactory.nativeDecodeStream(Native Method) at android.graphics.BitmapFactory.decodeStream(BitmapFactory.java:484) at android.graphics.BitmapFactory.decodeFile(BitmapFactory.java:284) at android.graphics.BitmapFactory.decodeFile(BitmapFactory.java:309) at cn.trinea.appsearch.util.Cache$2.onImageLoaded(Cache.java:88) at cn.trinea.appsearch.cache.ImageSDCardCache$MyHandler.handleMessage(ImageSDCardCache.java:390) at android.os.Handler.dispatchMessage(Handler.java:99) at android.os.Looper.loop(Looper.java:130) at android.app.ActivityThread.main(ActivityThread.java:3703) at java.lang.reflect.Method.invokeNative(Native Method) at java.lang.reflect.Method.invoke(Method.java:507) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:841) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:599) at dalvik.system.NativeStart.main(Native Method) |
多图片的程序运行一段时间或是monkey test极易出现上面的异常信息,表示图片的[......]
Android ListView滑动过程中图片显示重复错位闪烁问题解决
主要分析Android ListView滚动过程中图片显示重复、错乱、闪烁的原因及解决方法,顺带提及ListView的缓存机制。
1、原因分析
ListView item缓存机制:为了使得性能更优,ListView会缓存行item(某行对应的View)。ListView通过adapter的get[......]
EditText初始不获得焦点及输入框被遮挡问题
介绍EditText和AutoCompleteTextView初始不获得焦点及解决软键盘弹出时遮挡输入框问题。
1、activity启动时EditText不获得焦点
Activity启动时若有一个EditText默认,EditText获得焦点,去掉首次焦点,在manifest.xml中对应a[......]
Java(Android)线程池
介绍new Thread的弊端及Java四种线程池的使用,对Android同样适用。本文是基础篇,后面会分享下线程池一些高级功能。
1、new Thread的弊端
执行一个异步任务你还只是如下new Thread吗?
1 2 3 4 5 6 7 |
new Thread(new Runnable() { @Override public void run() { // TODO Auto-generated method stub } }).start(); |
那你[......]
Android公共库——图片缓存 网络缓存 下拉及底部更多ListView 公共类
介绍总结的一些android公共库,包含缓存(图片缓存、预取缓存、网络缓存)、公共View(下拉及底部加载更多ListView、底部加载更多ScrollView、滑动一页Gallery)、及Android常用工具类(网络、下载、shell、文件、json等等)。
Trine[......]
Android 图片SD卡缓存 使用简单 支持预取 支持多种缓存算法 支持不同网络类型 支持序列化
本文主要介绍一个支持图片自动预取、支持多种缓存算法、支持数据保存和恢复的图片Sd卡缓存的使用、功能及网友反馈的常见问题解答。
需要二级缓存或ListView和GridView图片加载请优先使用ImageCache。
更多 Android 图片缓存开源项目可见 Android 图片缓存。[......]
Android ImageCache图片缓存,使用简单,支持预取,支持多种缓存算法,支持不同网络类型,扩展性强
主要介绍一个支持图片自动预取、支持多种缓存算法、支持二级缓存、支持数据保存和恢复的图片缓存的使用、功能及网友反馈的常见问题解答。
更多 Android 图片缓存开源项目可见 Android 图片缓存。
与Android LruCache相比主要特性:(1). 使用简[......]
PreloadDataCache支持预取的数据缓存,使用简单,支持多种缓存算法,支持不同网络类型,扩展性强
本文主要介绍一个支持自动向前或向后获取新数据的缓存的使用及功能。Android图片内存缓存可见ImageCache。
主要特性:(1).使用简单 (2).可自动预取新数据 (3).可选择多种缓存算法(包括FIFO、LIFO、LRU、MRU、LFU、MFU等15种)或自定[......]
ProGuard的作用、使用及bug分析
本文主要ProGuard的作用、使用及bug分析。
1、ProGuard作用
ProGuard通过删除无用代码,将代码中类名、方法名、属性名用晦涩难懂的名称重命名从而达到代码混淆、压缩和优化的功能,跟JavaScript的混淆压缩类似。
压缩和优化使得编译后apk包更小。
混淆可以保证代码在[......]
Proguard语法及常用proguard.cfg代码段
本文主要ProGuard常用语法、标准proguard.cfg文件内容、常用proguard.cfg代码段及proguard与log level结合解决debug模式日志问题。关于ProGuard的作用、使用及bug分析可见ProGuard的作用、使用及bug分析。
1、ProGuard的常用[......]