现在位置: 首页 > 编程技术 > 安卓开发 > 文章
2016年05月08日 安卓开发 ⁄ 共 3204字 Android应用内存泄露分析、改善经验总结已关闭评论 ⁄ 阅读 738 次
前言 通过这几天对好几个应用的内存泄露检测和改善,效果明显: 完全退出应用时,手动触发GC,从原来占有内存100多M降到低于20M; 手动触发GC后,通过adb shell dumpsys meminfo packagename -d查看Activity和View的数量也趋近于0了(没有做到归零是因为SDK中存在内存泄露,需要中间层去处理); 发现了一个SDK中的内存泄露(Android InputMethodManager 导致的内存泄露及解决方案); 发现一个MTK Webview的内存泄露(org.chro...
阅读全文
2016年05月08日 安卓开发 ⁄ 共 731字 Android通过.nomedia文件禁止多媒体库扫描指定文件夹下的多媒体文件已关闭评论 ⁄ 阅读 837 次
Android默认情况下会将每个多媒体文件的信息保存在一个数据库中(在系统收到某些消息,比如开机、插拔SD卡、设备连接上电脑这种涉及到可能更改文件系统内容的情况下,会触发系统扫描文件系统中的多媒体文件变化情况并同步到媒体数据库中;或者应用发送更新多媒体库广播时,也会触发多媒体数据库的更新),应用在需要读取设备内指定格式的多媒体文件信息时,可以直接读取这个数据库,相比于文件全盘检索效率会高很多。 但是,有...
阅读全文
2016年05月08日 安卓开发 ⁄ 共 3805字 Rx Android实战(重构项目)已关闭评论 ⁄ 阅读 689 次
扯扯 上一次捣蛋 RxAndroid 是今年二月份的事情了,当时 RxAndroid 还处于一个资料甚少交流难的状态,当时还特意建了一个交流群,让搞这个的人可以加进来讨论讨论,毕竟这玩意还是挺有意思的,于是到今天群里已经有 124 人。 在这里我发现了一个现象,进入这个群的小伙伴很多都是中级工程师 or 以上的水准,没有像很多 XXXXXAndroid 交流群那样,小白和伸手党一大堆(在这里没有任何贬义看待,任何人都是从小白过来,只想说明...
阅读全文
2016年05月08日 安卓开发 ⁄ 共 3087字 优雅地发起网络Request与接收Response(Android)已关闭评论 ⁄ 阅读 749 次
以下几种写法很常见: 1、直接 new Thread 进行请求,数据返回后使用 handler 回到主线程进行 UI 刷新。 1 2 3 4 5 6 7 8 9 10 11 12 13 14 private void getData() { new Thread(new Runnable() { @Override public void run() { final String result = GetDataHelper.getData(); ShowImageActivity.this.runOnUiThread(ne...
阅读全文
2016年03月10日 安卓开发 ⁄ 共 12979字 Drawingcache解析已关闭评论 ⁄ 阅读 934 次
文章目录 图片质量控制 getDrawingCache返回空 getDrawingCache的替代方法 scrollingCache和animateCache android为了提高滚动等各方面的绘制速度,可以为每一个view建立一个缓存,使用 View.buildDrawingCache为自己的view建立相应的缓存, 这个cache就是一个bitmap对象。利用这个功能可以对整个屏幕视图进行截屏并生成Bitmap,也可以 获得指定的view的Bitmap对象。在...
阅读全文
2016年03月10日 安卓开发 ⁄ 共 14068字 Textview超链接实现方式总结已关闭评论 ⁄ 阅读 794 次
文章目录 Html.fromHtml方式 Spannable方式 Linkify.addLinks方式 TextView中的超链接可以通过几种方式实现:1.Html.fromHtml,2.Spannable,3.Linkify.addLinks。下面分别进行测试,包括 修改字体样式,下划线样式,点击事件等。 Html.fromHtml方式 TextView,本身就支持部分的Html格式标签。这其中包括常用的字体大小颜色设置,文本链接等。使用起来也比较方便,只需...
阅读全文
2016年03月10日 安卓开发 ⁄ 共 8014字 android分包原理已关闭评论 ⁄ 阅读 953 次
文章目录 multidex方案配置 如果App引用的库太多,方法数超过65536后无法编译。这是因为单个dex里面不能有超过65536个方法。为什么有最大的限制呢, 因为android会把每一个类的方法id检索起来,存在一个链表结构里面。但是这个链表的长度是用一个short类型来保存的, short占两个字节(保存-2的15次方到2的15次方-1,即-32768~32767),最大保存的数量就是65536。新版本...
阅读全文
2016年03月10日 安卓开发 ⁄ 共 15587字 理解handler已关闭评论 ⁄ 阅读 811 次
文章目录 Handler Message MessageQueue Looper 源码解析 总结 android中处理一些费时的操作需要单独启动一个子线程去处理。子线程处理完毕将结果通知给UI主线程更新UI界面。 子线程与UI主线程的通信在android中使用了消息机制来完成,那么是怎么完成的呢?这就和handler机制的原理(android中线程间通信的原理,而不是进程间通信), 简而言之,就是需要两样古老的东西...
阅读全文
2016年01月25日 安卓开发 ⁄ 共 7943字 评论 1 条 ⁄ 阅读 1164 次
在自定义控件中,要重写OnMeasure,onDraw方法,自定义布局还要重写onLayout方法以确定子控件位置,本篇博文讲述自定义控件应如何重写OnMeasure方法. onMeasure(int widthMeasureSpec, int heightMeasureSpec)方法两个形参widthMeasureSpec和heightMeasureSpec表示布局期望的子控件MeasureSpec(规格) MeasureSpec介绍 以下为MeasureSpec源码 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 publi...
阅读全文
2016年01月08日 安卓开发 ⁄ 共 3088字 评论 1 条 ⁄ 阅读 1123 次
关于资源的替换首先就要提到AssetManager,基本上所有的资源都是通过这个单例进行访问的。AssetManager.(PS: 可以参照代码,所有基于R.res.xxx的访问最终也会调用AssetManager的方法,只不过是不可见的我而已。)所以如果我们在构建插件的时候,在不构建插件的Context得前提下(这里由于插件没有安装,想要构建出其context十分困难)。我们就需要曲线救国了。 在ContextThemeWrapper中我们可以看到如下代码: @Override pu...
阅读全文