android
文章平均质量分 78
kuangminan
这个作者很懒,什么都没留下…
展开
-
内存泄露检测工具介绍——leakcanary
在android开发过程中经常碰到OOM的情况,下面介绍一个检查OOM非常实用的工具——leakcanary原文地址: https://corner.squareup.com/2015/05/leak-canary.html中文翻译: http://www.liaohuqiu.net/cn/posts/leak-canary-read-me/具体关于leakcanary的介绍可原创 2015-06-25 18:54:38 · 4501 阅读 · 0 评论 -
android应用程序启动详情之Dalvik虚拟机
本文主要讨论Android启动一个应用时一些后台相关的流程。Dalvik虚拟机 -》 进程启动 -》 创建UI线程总体概念: 一个应用,一个虚拟机实例,一个进程,一个UI线程1. Dalvik虚拟机基本知识介绍基本概念Dalvik虚拟机是Android程序的虚拟机,其指令集基于寄存器架构,执行其特有的文件格式——dex字节码,主要负责完成对象生命周期管理、堆栈管理、线程管理、原创 2017-03-13 15:17:02 · 2514 阅读 · 0 评论 -
android启动activity的详细过程
首先认识几个重要的概念:ActivityManagerService: 四大组件管理的核心类,同时管理和调度用户进程 ActivityRecord: 在AMS中用来保存一个activity的信息TaskRecord: 在AMS用来保存一个任务的信息ActivityStack: 管理taskRecord。三星FW包含HOME_STACK_TYPE、NORMAL_APP_STACK_T原创 2017-03-17 21:38:09 · 873 阅读 · 0 评论 -
在fragment中实现仿tab效果
最近由于项目需要在fragment中实现一个tab支持click监听和page滑动。现在主流的都是使用viewPager+fragmentadapter来实现,但是他们都是在activity中实现。如果直接把这一套直接搬进到fragment中fragment会显示不出来,界面一团黑启动不起来。最后在网上找到该博主的解决方案,链接: http://blog.csdn.net/my原创 2016-04-10 12:00:06 · 357 阅读 · 0 评论 -
新信息存入数据库的更新过程
一般对于数据库更新过程都是要利用到观察者模式,所以在讲解新信息的更新过程前先了解观察者模式的注册和通知更新的流程。 注册监听时各个类之间的调用关系:ContentObserver 就是就是用来接收数据变化时的观察者,能进行异步派发派发接收到变化的通知。public abstract class ContentObserver { private Transport mTr原创 2016-02-24 16:15:18 · 1095 阅读 · 0 评论 -
AsyncTask和Handler的优缺点比较
AsyncTask实现的原理和适用的优缺点AsyncTask,是android提供的轻量级的异步类,可以直接继承AsyncTask,在类中实现异步操作,并提供接口反馈当前异步执行的程度(可以通过接口实现UI进度更新),最后反馈执行的结果给UI主线程.使用的优点:简单,快捷过程可控 使用的缺点:在使用多个异步操作和并需要进行Ui变更时,就变得复杂起来.H转载 2016-02-23 10:16:27 · 292 阅读 · 0 评论 -
android线程间的通信机制
之前文章介绍了android进程间的通信方式大体有四种:Intent携带参数传递,broadcast,contentprovider和binder。具体可以参考之前问题。而在android中如果同一进程中,开启了不同的线程,那么这些线程之前和线程跟主线程之间是怎么通信的,这边问题就是来讲这个问题。网上看到两篇详细介绍android线程的文章,讲的非常详细:【Android开发】线程间通讯机转载 2015-09-30 11:27:00 · 1084 阅读 · 0 评论 -
android binder 机制
1、 Binder通信模型通信流程图:各个步骤流程:1) service 运行,阻塞于 ioctl,等待 client 发起请求service 进程运行起来,然后通过调用 IPCThreadState 的 joinThreadLoop 在本线程中开始等待客户端请求的到来。两个前提条件:第一个,system service 必须向 service manager 注册原创 2015-09-30 09:46:14 · 1049 阅读 · 0 评论 -
android中跨进程通讯的4种方式
转自: http://www.2cto.com/kf/201202/119100.html由于android中不同的进程使用的内存空间不同,所以如果想要在进程中传递数据直接传递数据地址是不行的,proA中的数据地址在proB中是无效的。所以在android中目前知道的有四种数据通信方式:方式一 使用Intent方式进行数据传递通过Intent来启动访问其他应用程序的Activity转载 2015-09-29 20:25:35 · 2000 阅读 · 0 评论 -
Android listview的性能优化
参考网址:http://www.devba.com/index.php/archives/5966.html讲解几种listview性能优化的方法:优化一:也是最普通的优化,就在MyAdapter类中的getView方法中,我们注意到,上面的写法每次需要一个View对象时,都是去重新inflate一个View出来返回去,没有实现View对象的复用,而实际上对于ListV转载 2015-06-06 17:44:49 · 325 阅读 · 0 评论 -
java中的多线程
参考文章: http://lavasoft.blog.51cto.com/62575/27069/文章已经总结的很详细,我以下的文章只是对上面文章的简单摘抄,版权仍然为上文所有。1、 java线程的概念 参考链接: http://lavasoft.blog.51cto.com/62575/27069/线程创建的两种方法:继承thread类和实现runnable方法。如果转载 2015-06-25 20:11:07 · 575 阅读 · 0 评论 -
listView的工作原理
listview的基本元素:参考网址:http://blog.csdn.net/ocean181/article/details/7170735ListView是将数据以列表的形式展现出来,由三个元素组成:view、adapter和data,关系图如下。 1).View,列表的显示形式由一个xml所指定的。一般是在每个item需要显示的时候即在getView函数中通过Inflate转载 2015-06-05 10:07:54 · 550 阅读 · 0 评论 -
android应用程序启动详情之进程相关
当某个应用组件启动且该应用没有运行其他任何组件时,Android 系统会使用单个执行线程为应用启动新的 Linux 进程。默认情况下,同一应用的所有组件在相同的进程和线程(称为“主”线程)中运行。 如果某个应用组件启动且该应用已存在进程(因为存在该应用的其他组件),则该组件会在此进程内启动并使用相同的执行线程。也可以在AndroidManifest.xml中配置And原创 2017-03-14 20:22:11 · 670 阅读 · 0 评论