摘要:
内存泄露是咱新手比较头痛的问题,因为它不像崩溃,在开发环境可以根据提示的错误信息排查问题。 你都不知道咱的app是否哪个犄角旮旯藏着一个吞噬内存的黑洞。 排查android 内存泄露比较底层高端的做法:使用官方的内存分析工具(MAT), 比较好的两篇入门文章:(一) 和 (二) 然而这个过程比较考验 阅读全文
摘要:
Mapping文件地址: mapping文件用于在代码被混淆后,还原BUG信息。 release模式编译项目即可产生,相对位置:工程\build\outputs\mapping\release 需要clean project能解决的: Error:Execution failed for task 阅读全文
摘要:
在咱的博客园app里,新闻的内容使用WebView展示的。在测试中,咱重复进入、退出某个新闻10多次,观察到 Objects一直在不断增长,反复触发GC,但是一直回收不了,占用的内存越来越高,于是警觉到这个WebView可能泄露内存了 如下: 在StackOverFlow上搜了下android we 阅读全文
摘要:
比如友盟统计页面停留时间,咱们需要知道当前页面停留了多久。一般我们都有一个父类Activity,用下面的方法可以获得完整的包名.类名结构this.getLocalClassName()输出如下:当前类名:﹕ activity.login.SplashActivity当前类名:﹕ activity.m... 阅读全文
摘要:
以上图片大家可以看到,虽然是个jpg格式的文件,但是本质上是个动图。但是发现在咱的图片模块下,本地存储的图片只有一帧,问题出在哪里呢?http获取到的byte[]数据是没问题的断点跟踪了下,发现问题出现在最后一句压缩图片尺寸的时候。public static Bitmap getScaledBitM... 阅读全文
摘要:
背景:在咱编写的图片处理模块里,针对加载这个方法,参数很多,如:/** * 加载图片,经过内存、磁盘、两层缓存如果还没找到,则走http访问网络资源 * @param url 地址 * @param imageView 图片控件 * @param width 图片宽度... 阅读全文
摘要:
背景咱的博客园APP,是通过一个WebView来展示新闻的详情的。新闻必然是图文并茂的,无论是支持离线缓存还是加速新闻的打开速度, 都需要咱们打通本地存储与WebView之间的桥梁。思路1:首先把WebView的绝对路径设置为我们图片存储的根目录 修改第一个参数以指向本地存储目录,这样就可以使用相对... 阅读全文
摘要:
前言下拉刷新和上滑加载更多,是一种比较常用的列表数据交互方式。android提供了原生的下拉刷新容器 SwipeRefreshLayout,可惜样式不能定制。于是打算自己实现一个专用的。但是下拉刷新和上滑,非常考验对android布局与父子触摸机制的功底,因此参考gitHub上的一个热门的下拉刷新项... 阅读全文
摘要:
自学从来都是一件难以坚持的事情,看过太多人三分钟热度之后就颓然放弃,然后告诉下一个要自学的人,自学很难,还是正儿八经去培训机构吧所以首先你要对安卓开发非常感兴趣,发自内心喜欢安卓系统,日常手机如果是安卓机子最好了,这样你写完了一个app,立刻就可以在手上体验了。推荐边学边做项目的模式生活中缺点啥,咱... 阅读全文
摘要:
先上个优化之后的fps图,丝滑流畅;具体实现请看最终优化后的app背景:一个通讯录app(开源地址),每次登陆时,针对每个用户,如果头像图片不在本地,则生成一个异步下载任务(AsyncTask)。tips:判断图片是否在本地,咱使用的方法:根据该图片的url,比如http://images0.cnb... 阅读全文