
android基础
宇宙小生命
这个作者很懒,什么都没留下…
展开
-
Bitmap decodeStream()与decodeResource()比较B
项目中遇到一个很奇怪的问题,就是用一个viewpager简单的加载三张图片滑动的时候非常卡顿。这个非常奇怪,因为之前是不存在这个问题的。那么为什么现在出现了,发现新给的这三张图片比较大,1080p的。但即使1080p的图片也不应该这么卡啊,因为同一手机上另一个程序加载同样的图片也是左右滑动却没有这种卡顿的现象。 刚开始以为是viewpager的问题,最后用ddms查看内存占用情况发现一打开原创 2015-01-20 15:18:58 · 1322 阅读 · 0 评论 -
android属性动画小结
一直以来都没有用属性动画,认为可以靠postDelayed()一个任务来不断invalidate这个view从而实现动画效果。但是今天发现使用属性动画会更流畅 public void rotateyAnimRun(final View view){ObjectAnimator anim = ObjectAnimator//.ofFloat(view, "zhy", 1.0F原创 2015-08-03 21:21:14 · 503 阅读 · 0 评论 -
Looper.myQueue().addIdleHandler,在activty界面显示后做一些事情,就在这个idlehandler中做
相当于一个处理任务的时间节点。原创 2016-01-11 17:39:44 · 3265 阅读 · 0 评论 -
adb 查看wifi命令
4. 打开WIFI指令 svc wifi enable5. 关闭WIFI指令 svc wifi disableps|grep wifi 查看wpa_supplicant是不是已经起来了6.查看ip: adb shell netcfg原创 2016-04-26 20:40:03 · 8659 阅读 · 1 评论 -
从mms源码看IM应用的架构<一>
最近因为项目在研究mms短信代码,本来以为现在短信已经是一个很鸡肋的功能了,没有什么价值了。但在看代码过程中,却在技术上收获不少,尤其是关于处理N多后台任务的架构设计很不错,可以学习google工程师的代码设计用到自己项目中。好了,下面会从几个方面分析:LoadManager框架、Action+IntentService框架、其它方面。 LoaderManager是什么?正常情况原创 2016-07-14 10:19:53 · 546 阅读 · 0 评论 -
从mms源码看IM应用的架构<二>
Action+ IntentService架构 这一部分给大家总结一下mms里面对于后台任务的处理。正常情况下,一个互联网应用可能会涉及到n多的后台任务要运行,短信应用也不例外,不如插入短信到数据库,删除短信,标记为已读,发送短信,接收短信,下载彩信等。这些都是耗时任务,并且他们之间有些还有先后顺序要求,如果没有一个两个的后台任务管理框架,拿维护起来可就要了亲命了。 这里我们就来看一下原创 2016-07-14 17:35:21 · 880 阅读 · 0 评论 -
canvas的save restore clipRect方法解析
之前对canvas的这几个方法一直不是很清楚,今天花点时间总算搞明白了。 1.save restore方法成对出现,用于保存恢复画布canvas,比如需要临时rotate canvas来画一些东西,画完之后再rotate回来画其它东西,这时就可以用这个兄弟 2.cliprect方法,用于将画布切割到指定区域大小来作画,一般需要save restore方法保存恢复画布原创 2016-10-14 19:10:40 · 956 阅读 · 0 评论 -
android性能问题---项目实战
1. HandlerThread导致oom 背景:自动化测试过程中,每一个用例task里面会启动一个HandlerThread,但是HandlerThread是在task构造函数里面启动,而不是onStart里面启动,这样就导致初始化task集合时瞬间start了很多HandlerThread,并且如果中间退出测试,会导致没有开始的task里面的HandlerThread无法释放。最终原创 2017-01-22 16:21:01 · 288 阅读 · 0 评论 -
ActivityThread ApplicationThread简要记录
android应用ui是绘制在主线程中的,这个线程就是ActivityThread。但实际上看源码发现ActivityThread并没有继承自Thread,而是一个独立的类,只是在其main方法中开了一个Looper循环消息,不断接收处理发到主线程里面的消息,比如performLaunchActivity. 而ApplicationThread也不是一个Thread,是一个Binder原创 2015-04-05 15:42:23 · 1130 阅读 · 0 评论 -
ListView的缓存原理
之前一直不清楚 getView(int position, View convertView, ViewGroup vg)中的convertView是怎么进行缓存管理的。今天看了一下相关源码及网上的相关介绍,终于明白了。在这里把里面的关键点梳理出来。 class RecycleBin { private ArrayList[] mScrapViews;原创 2015-03-26 20:26:26 · 719 阅读 · 0 评论 -
Android性能优化案例研究(上)
目录[-]Falcon Pro说说关于性能优化证实我的疑问方法:提醒:关于“Execute”:进一步研究注意:技巧:可视化重绘透明像素:重绘和GPU:英文原文:Android Performance Case Study 编译:ImportNew - 孙立译 者前言:这是Google的Android开发工转载 2015-03-20 18:14:11 · 488 阅读 · 0 评论 -
Android性能调优
(一) 查询数据库没有关闭游标(二) 构造Adapter时,没有使用缓存的 convertView (三) Bitmap对象不在使用时调用recycle()释放内存(四) 释放对象的引用描述: 这种情况描述起来比较麻烦,举两个例子进行说明。示例A:假设有如下操作public class DemoAct转载 2015-03-05 15:37:18 · 440 阅读 · 0 评论 -
Android性能优化案例研究(下)
目录[-]去掉冗余的图层重要:去掉桌面背景:进一步去掉重绘一句建议:Activity名字:未来的优化:扁平化View的层级如何扁平化你的界面:关于输入事件?现在轮到你了!提示:译者前言:在Android性能优化案例研究(上)中,作者Romain Guy将Falcon Pro这款应用作为例子,通过Android现有的工具追踪和分转载 2015-03-20 18:15:53 · 441 阅读 · 0 评论 -
Android获取图片指定大小的缩略图--inJustDecodeBounds的使用
在开发图片浏览器等软件是,很多时候要显示图片的缩略图,而一般情况下,我们要将图片按照固定大小取缩略图,一般取缩略图的方法是使用BitmapFactory的decodeFile方法,然后通过传递进去BitmapFactory.Option类型的参数进行取缩略图,在Option中,属性值inSampleSize表示缩略图大小为原始图片大小的几分之一,即如果这个值为2,则取出的缩略图的宽和高都是原始图片转载 2015-03-31 15:05:41 · 686 阅读 · 0 评论 -
ThreadLocal的使用
熟悉Looper源码的朋友可能知道,looper与线程绑定并不是直接set进去的,而是通过ThreadLocal这个东西间接将looper的引用交给当前线程持有的。Looper.java private static void prepare(boolean quitAllowed) { if (sThreadLocal.get() != null) {原创 2015-04-04 20:59:29 · 699 阅读 · 0 评论 -
探究Android SQLite3多线程
关于getWriteableDataBase()和getReadableDatabase()的真正作用getWriteableDataBase()其实是相当于getReadableDatabase()的一个子方法,getWriteableDataBase()是只能返回一个以读写方式打开的SQLiteDatabase的引用,如果此时数据库不可写时就会抛出异常,比如数据库的磁盘空间满了的情况。转载 2015-04-10 16:47:58 · 393 阅读 · 0 评论 -
activity界面劫持--qq钓鱼应用分析
"在其位谋其政 任其职尽其责",既然进入了安全领域就应该做出一点相关的成果出来,否则就是名不符实,而我今天总算做出了一点真正和安全相关的东西了,记录于此。我的项目组做的是一个叫安全容器的东西,大致上就是在系统中虚拟出另外一个操作环境与普通环境隔离开来,这个环境可以进行一些安全度高的操作,比如支付,并且保证不被普通环境影响。主要是针对政府企业单位的产品,最大的亮点当然就是这个隔离性了。原创 2015-02-04 17:08:15 · 1246 阅读 · 0 评论 -
重磅整理---Android进程保活组件
github地址: https://github.com/stephen8341/KeepProcLive这里面集成的方案包括:1. Service指定为START_STICKY 被系统回收的进程会被系统重新拉起2. Service设置为前台进程 将后台进程设置为前台进程,提高进程优先级 3. 1像素Activity方案 关屏后加载1个像素的Act原创 2017-05-05 21:54:27 · 1145 阅读 · 1 评论