自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(11)
  • 资源 (3)
  • 收藏
  • 关注

原创 多线程下的单例模式浅析

在多线程下,为了保证单例模式在任何情况下都只有一个实例,以及对极致性能的追求,而产生了以下两种比较难抉择的方式1.常见的写法,看起来比较优雅public class SingletonLazy { private static SingletonLazy mInstance; public synchronized static SingletonLazy getIns...

2019-05-05 18:51:40 190

原创 android点击事件分发中的一些疑难点

  一:enable与clickable对点击事件的影响:1.View的Dispatchtouchevent 中 首先调用onTouch(返回值为true则消耗事件),未消耗事件则调用onTouchEvent 。onTouchEvent 首先调用onTouchDelegate(需传入一个Rect参数,可以控制点击范围) ,未消耗事件则调用 onClick(只在MotionEve...

2018-12-26 09:18:00 198

原创 android内存泄露深入研究

首先抄上百科隐式内存泄漏:程序在运行过程中不停的分配内存,但是直到结束的时候才释放内存。严格的说这里并没有发生内存泄漏,因为最终程序释放了所有申请的内存。但是对于一个服务器程序,需要运行几天,几周甚至几个月,不及时释放内存也可能导致最终耗尽系统的所有内存。所以,我们称这类内存泄漏为隐式内存泄漏。从用户使用程序的角度来看,内存泄漏本身不会产生什么危害,作为一般的用户,根本感觉不到内存泄漏的存在。...

2018-11-05 14:55:40 239

原创 通话界面需响应底层通知进行界面修改的情况

需要通话界面响应改动的两大类情况1.InCallServiceImpl继承InCallService重写几个重要方法(由这些方法通知InCallPresent,再由InCallPresent通知其它Present)public void onCallAudioStateChanged(CallAudioState audioState)public void onBringToFore...

2018-11-05 14:48:26 342

原创 原生联系人详情界面数据处理流程

联系人详情界面可以显示联系人数据库中联系人,来自陌生号码的联系人,以及通过网络URL传递过来的包装json数据的联系人等。这里我们只讨论存在于联系人数据库中联系人的数据处理流程。首先将一个联系人的基本信息取出来;mContactLoader = (ContactLoader) getLoaderManager().initLoader( LOADE...

2018-08-02 11:34:33 1038

原创 Android7.0从蓝牙导入联系人开发的实现

Android7.0 realease版本中已经将framework/opt/bluetooth中的pbap部分移植到package/apps/Bluetooth的蓝牙应用中,所以之前用到framework/opt/bluetooth中pbap部分的代码已经无法正常使用了。但研读代码过程中发现蓝牙应用中已经提供了从蓝牙导入联系人、通话记录的服务。 这里给出调用该服务的简单方法。一、连接服务

2017-11-16 11:09:11 1942 5

原创 一些Android开发过程杂项问题的整理(一)

linux中vim编辑器的实用功能 1. Ctrl+v 进行块选择 2. :sp[filename] vim中开新拷贝的块,上下对比很方便, 使用Ctrl +w+上下来切换块通过应用包名打开应用的主界面 PackageManager packageManager = getPackageManager(); Intent intent=new Intent();

2017-09-25 10:36:01 271

原创 CompositeCursorAdapter——可在ListView中添加多个cursor的Adapter

源码贴在最下面,有需要的直接复制过去即可使用。 下面讲解几个重点方法。1.public void addPartition(boolean showIfEmpty, boolean hasHeader) 该方法是增加一个Cursor对应的区域(partition),listview中要载入多少个Cursor,在初始化的时候就调用几次该方法,partition会按按0,1,2,3…的序号依次叠加,b

2017-08-29 11:00:41 1025

原创 BlockCanary在Android原生开发中的配置方法

BlockCanary对主线程操作进行了完全透明的监控,并能输出有效的信息,帮助开发分析、定位到问题所在,迅速优化应用。 下面介绍配置方法。 1.找到配置BlockCanary的jar包和arr包 blockcanary-android-1.5.0.aar blockcanary-analyzer-1.5.0-sources.jar2.mk文件中引入jar包和arr包 引入jar包方法:L

2017-06-29 15:57:40 406

原创 浅谈面向对象的单一职责原则与开放封闭原则

单一职责原则的核心思想一个类,最好只做一件事,只有一个引起它的变化。通常意义下的单一职责,就是指只有一种单一功能(该功能不会再去考虑分割),不要为类实现过多的功能点,以保证实体只有一个引起它变化的原因,这也就是开发者宁愿写更多的代码去实现多层次继承关系,来保证每个类只完成它的特定职责。当一个类职责过多时,可能引起它变化的原因就越多,这将导致职责依赖,相互之间产生影响。当一个类有A,B两个职责时,在创

2017-06-29 15:39:48 428

原创 Android multidex在Android原生开发中的简单配置。

Android multidex在Android原生开发中的简单配置。 在Android系统中安装应用的时候,需要对Dex进行优化,但由于其处理工具DexOpt的限制,导致其id的数目不能够超过65536个,即APP的函数方法不能超过65536个。而MultiDex兼容包的出现,就很好的解决了这个问题,它可以实现一个APK包含多个dex的功能。 1.mk文件中加上LOCAL_STATIC_JAV

2017-06-29 15:24:45 630

最新86_zh归属地文件,至2018.12月

包含 电信:133 153 173(新) 177 (新) 180 181 189 199 (新) 移动:134 135 136 137 138 139 150 151 152 157 158 159 172(新) 178(新) 182 183 184 187 188 198(新) 联通:130 131 132 155 156 166(新) 175(新) 176(

2019-01-08

通过txt文件生成86_zh的归属地工具

通过txt文件生成86_zh的归属地工具

2019-01-07

原生联系人aggregation交互原理

原生联系人合并aggregation交互原理

2019-01-04

空空如也

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

TA关注的人

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