自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(19)
  • 资源 (1)
  • 收藏
  • 关注

原创 SystemUI初始化加载流程

1.1System启动,ActivityManagerService在systemReady时启动SystemUIService: frameworks\base\services\java\com\android\server\SystemServer.java   public static void main(String[] args) {       new System

2017-01-19 09:46:07 1068

原创 深入理解Android Binder机制的几点

Android系统Binder机制中的四个组件:Client,Server,Service Manager和Binder驱动程序。1. Client、Server和Service Manager实现在用户空间中,Binder驱动程序实现在内核空间中2. Binder驱动程序和Service Manager在Android平台中已经实现,开发者只需要在用户空间实现自己的Client和Se

2017-01-18 10:14:15 298

转载 Framework分析-Application的onCreate

ActivityThread并不是一个Thread,而是一个单纯的Java类,查看一下 ActivityThread 的源码final class ActivityThread,并没有继承Thread或者实现Runnable接口,ActivityThread 其中包含 main 方法,程序的入口地方,怎么看出来的呢? 我们开发过程中总会出现程序异常信息,细心看一下log,查看最下面的几行,

2016-12-01 14:52:53 840

转载 源码分析:onAttach, onMeasure, onLayout, onDraw 的顺序。

从前文《 源码解析:dialog, popupwindow, 和activity 的第一个view是怎么来的?》中知道了activity第一个view或者说根view或者说mDecorView 其实就是一个FrameLayout,以及是在系统handleResume的时候加入到系统windowManager中的,并由framework中的ViewRootImpl 接管,通过ViewRootImpl

2016-12-01 11:24:35 473

原创 关于Android Binder机制

binder通信是一种client-server的通信结构,从表面看,是client通过获得一个server的代理接口,对server进行直接调用,实际上,代理接口中定义的方法与server中定义的方法是一一对应,client调用某个代理接口中的方法时,代理接口的方法会将client传递的参数打包成为Parcel对象,代理接口将该parcel发送给内核中的binder driver,server会

2016-10-13 15:31:58 250

原创 关于自定义indexbar使用paint画笔实时显示索引listview的header首字母和header对应的列表首个字符

开发联系人模块,遇到自定义view的问题,并且是使用paint画笔去绘制,关于字母索引列表的问题网上有很多基础的教程,但是遇到特殊定制的view和功能,还是需要开发人员自己去想办法解决。描述一下:就是要在绘制好右侧字母索引的同时,弹框展示字母和字母对应的姓名的姓氏列表:如图

2016-09-24 11:00:44 415

原创 关于Android沉浸式状态栏字体颜色和图片背景自适应变化

最近开发Android音乐,遇到关于沉浸式状态栏的问题,当音乐封面背景图片和状态栏融合到一起时,如果状态栏的字体设置为白色或者浅色,这时背景图片的颜色也是白色,导致状态栏的字体几乎看不到的问题。如下图这时,如果只是单纯的设置状态栏的字体颜色,这样是不行,因为每播放一首歌,他得封面是不同的,有的颜色深,有的颜色浅,这时候要去判断背景图片的bitmap值,来设置不同的状态栏字体颜色,即所谓的自适应

2016-09-24 10:37:26 5310

原创 关于AsyncTask影响文件列表加载速度的问题

1.首先AsyncTask有两个主要功能,即:与UI界面的交互,和对线程的调度管理。对于线程的调度,他会创建一个进程作用域的线程池来管理要运行的任务,就是说当你调用了AsyncTask的execute()后,就把任务交给线程池,由线程池来管理创建线程和运行线程。对于API10以前的版本,内部的线程池限制是5个,同时只能有5个线程运行,超过的线程只能等待,等待前面的线程某个执行完了才被调度和

2016-07-16 15:54:02 401

原创 Anroid Touch 事件传递机制

Android系统中的每个ViewGroup的子类都具有下面三个和TouchEvent处理密切相关的方法:1.public boolean dispatchTouchEvent(MotionEvent ev)   用来分发TouchEvent2.public boolean onInterceptTouchEvent(MotionEvent ev)   用来拦截TouchEvent3.

2016-06-25 16:44:52 264

原创 Android内存优化

OOM:内存泄露可以引发很多的问题:1.程序卡顿,响应速度慢(内存占用高时JVM虚拟机会频繁触发GC)2.莫名消失(当你的程序所占内存越大,它在后台的时候就越可能被干掉,反之,内存占用越小,在后台存在的时间就越长)3.直接崩溃(OutOfMemoryError)Android内存面临的问题:1.有限的堆内存,原始只有16M2.内存大小消耗等根据设备,操作系统等级

2016-03-21 16:55:36 306

原创 Android如何高性能编程

如何实现Android的高性能编程,就涉及到Android的内存优化,算法优化,Android的界面优化,Android指令级优化,以及Android应用内存占用分析,还有其他的知识。作为开发人员,算法和数据结构永远是我们最先考虑的事情,同时还要记得两个基本原则:1.不要做不必要的事;2.不要分配不必要的内存。1)内存优化Android系统对每个软件所能使用的RAM空间进行了限制(例如

2016-03-21 15:13:45 1428

原创 android开发之流量监控

Android流量监控主要是有两种方法:1.抓包这个方法获取的流量更加精准,但是难度应该大点。2.读取Linux本地文件Android是基于Linux的一个操作系统在Android中,用RootExplorer去查看系统文件的话,与流量监控相关的会有这么几个文件/proc/net/dev这个文件中具体记录的暂时不是非常清楚,可能是整个系统的一个流量情况。/proc/ui

2016-03-21 11:29:08 1121

原创 四种方法解决ScrollView嵌套listview的滑动冲突问题

在工作中,曾碰到过多次scrollView嵌套listview的问题,网上的解决办法很多,但大都是杂而不全,在这里,我从使用scrollview嵌套listview结构的原因、这个结构碰到的问题、几种解决方案和优缺点比较,这4个方面来给大家阐述、分析、总结。其实不光是listview,其他继承自AbsListView的类也适用,包括ExpandableListView、Gridview等,为了

2016-03-11 16:34:05 1758

转载 Android开发性能优化

大致罗列11种Android开发性能优化的方法,合理的使用它们可以让Android应用迅疾如飞。1.http用gzip压缩,设置连接超时时间和响应超时时间。http请求按照业务需求,分为是否可以缓存和不可缓存,那么在无网络的环境中,仍然通过缓存的httpresponse浏览部分数据,实现离线阅读。2.listview性能优化复用convertView在getItemView中,

2015-12-25 09:11:37 259

转载 Android的socket通信

Android通过socket和服务器通讯,是一种比较常用的通讯方式,大概可以有以下的思路:1.开启一个线程发送消息,SocketOutputThread消息是放在队列里的,当有消息后,进入队列,线程唤醒,发送消息,并反馈发送是否成功的回调2.开启一个线程接收服务器消息SocketInputThread为了防止一直收数据,浪费电池的电,采用NIO的方式读socket的数据,这个是本

2015-12-24 10:46:23 276

转载 Android蓝牙开发流程

首先,要操作蓝牙,先要在Androidmanifest.xml里加入权限然后,看下API,Android所有关于蓝牙开发的类都在Android.bluetooth包下,只有八个类:BluetoothAdapter,BluetoothClass,BluetoothClass.Device,BluetoothClass.Device.Major,BluetoothClass.Servi

2015-12-23 09:32:32 389

转载 Android Framework探索

1.Android系统的层次如下:Android手机:内核层(基于Linux2.6开发),系统层,应用框架层,应用层内核层:内核增强,安全,内存管理,进程管理,网络栈,驱动模块系统层:运行库,程序库应用框架层:View,ContentProviders,Resource Manager,Notification Manger,Activity Manager应用层:在应用框架层

2015-12-22 09:56:24 657

转载 Android消息处理机制

Android的消息驱动机制主要包含这几个概念:消息的表示,消息的队列,消息循环,消息处理。下面分别介绍这几个概念:Message就是消息的表示,MessageQueue是消息队列,Looper是用于循环取出消息并进行处理的,Handler是消息循环从消息队列中取出消息后进行处理。平常最常使用的就是Message和Handler,如果用过HandlerThread或者自己实现类似Handler

2015-12-18 13:57:01 290

原创 java多线程的内存可见性探索_1

可见性:一个线程对共享变量值得修改,能够及时的被其他线程看到。共享变量:如果一个变量在多个线程的工作内存中都存在副本,那么这个变量就是这几个线程的共享变量。Java内存模型(JMM):Java memory Model描述了Java程序中各种变量(线程共享变量)的访问规则,以及在JVM中将变量存储到内存和从内存中读取出变量这样的底层细节。所有的变量都存储在主内存中,每个线程都有自己独立

2015-07-11 15:00:26 334

java web源代码

基于strut2的java web源代码,适合于初学者去学习。

2013-10-30

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除