Android开发
lihuanxing
这个作者很懒,什么都没留下…
展开
-
AIDL使用(一)
IPC的含义是指进程间通信或者跨进程通信,是两个进程之间进行数据的交流,AIDL就是其中一种方式,趁着今天星期六有空闲时间,就学习了一下,顺便做一下笔记。 这分为服务端和客户端两部分,服务器端创建一个Service,接着在客户端绑定这个服务,从而实现通信交互。 根据官方给出的文档,我们需要以下三步:创建aidl文件实现这个接口把这个接口暴露给客户端创建aidl文件 在自己翻译 2016-07-09 12:00:48 · 274 阅读 · 0 评论 -
android接入华为推送
最近公司产品想要提高用户体验,便让我研究一下华为推送的问题。其实推送最重要的就是进程保活的这个问题,这是一个比较棘手的问题。现在比较普遍的做法是集成多个厂商的推送,例如小米,华为,魅族推送等,再加一个另外的第三方推送(个推,极光,信鸽)。今天主要讲的是华为推动接入的一些步骤和问题,而接入的版本是hms 2.5.2.300。1、注册成为华为开发者https://hwid1.vmall.com/CAS/原创 2017-08-03 11:26:00 · 17163 阅读 · 3 评论 -
Android Studio如何使用github和git管理项目
git是一款免费、开源的分布式版本控制系统,用于敏捷高效地管理任何或小或大的项目。而github则是最大的开源社区,里面有全球各式各样的开源项目寄托在上面,因为只支持git作为唯一的格式进行托管,所以叫github。而我们今天要讲的就是如何在Android Studio上使用这两者进行项目管理。1、安装git要在Android Studio里面使用git,首先就要在自己的电脑上安装git,官网地址:原创 2017-07-19 23:28:58 · 836 阅读 · 0 评论 -
ThreadLocal工作原理
已经有几个月没有写博客了,虽然作为一名菜鸟,但是学习还是要持之以恒的,多写写博客,总结一下自己的学习成果还是不错的。今天,我们就一起来学习一下ThreadLocal吧!说起ThreadLocal,应该大家都觉得有点陌生。确实,在日常的开发中,ThreadLocal用的地方比较少,但是在某些场景下,它是可以完成复杂的功能。例如Android消息机制,Handler和Looper。Handler工作的时原创 2017-02-17 12:40:56 · 323 阅读 · 0 评论 -
LruCache源码分析
在讲解源码之前,首先我们要知道什么是Lru? LRU是Least Recently Used 近期最少使用算法。它的核心思想就是当缓存空间存满的时候,会优先淘汰那些近期最少使用的缓存对象。我们来看看LruCache的结构:private final LinkedHashMap<K, V> map;/** Size of this cache in units. Not necessarily th原创 2016-11-05 17:27:24 · 440 阅读 · 0 评论 -
AIDL使用(二)
记得很久之前写过一篇AIDL使用(一),这次写AIDL使用的另外一种情况。我们先看看系统帮我们创建的aidl文件的默认情况是怎样的。void basicTypes(int anInt, long aLong, boolean aBoolean, float aFloat, double aDouble, String aString);这里面有int,long,boolean原创 2016-09-07 16:16:36 · 355 阅读 · 0 评论 -
AIDL下Binder的工作机制
Binder原创 2016-09-08 12:44:28 · 470 阅读 · 0 评论 -
AsyncTask工作原理解析
因为这是我第一次写源码的解析,说得不清楚或者不正确的还望指正。 线程在android中扮演了很重要的角色,但归根到底就是主线程(UI线程)和子线程。在子线程中不能修改UI控件,而在主线程中又不能做耗时的操作。所以说如果既要做耗时的操作,又要修改UI控件的话,就会显得很麻烦,幸好android封装了这一功能,就是AsyncTask,里面是封装了线程池和Handler。 AsyncTask的调用是n原创 2016-09-05 23:36:39 · 324 阅读 · 0 评论 -
Android四种启动模式
通常在默认的情况下,当我们多次启动Activity的时候,系统就会默认将它们依次放入任务栈,当我们按下返回键的时候,这些Activity就会一一回退,这就相当于出栈。那么系统给我们提供了四种启动模式:standard 标准模式singleTop 栈顶复用模式singleTask 栈内复用模式singleInstance 单实例模式现在我们依次讲解:standard这是系统默认的启动的模式,每原创 2016-09-15 16:40:41 · 458 阅读 · 0 评论 -
AsyncTask的使用
AsyncTask是一种轻量级的异步任务类,在线程池中执行后台,然后通知主线程更新UI。其实AsyncTask封装了线程池和Handler。但是AsyncTask不适合进行特别耗时的操作,因为在Android 3.0以后,AsyncTask是串行执行,相当于是在内部的单线程运行。 首先,AsyncTask是一个抽象类,有三个泛型参数,分别是Params,Progress,Result,他们代表的含原创 2016-08-28 20:10:56 · 396 阅读 · 0 评论 -
Bitmap加载
Bitmap是Android系统中的图像处理的最重要的类之一。通常对于一般小的图片的加载时没有什么问题的,但是如果如果加载比较的大的图片,就很容易发生OOM问题,就是所谓的内存溢出,所以我们就要对图片进行加载管理,就是通过缩放来加载图片。 首先,Bitmap的加载是通过BitmapFactory类提供的一些方法,decodeFile(),decodeResoure(),decodeStream()原创 2016-08-16 23:23:59 · 349 阅读 · 0 评论 -
DiskLruCache使用
DiskLruCache是Google官方提供的一种磁盘缓存的方案。如果用户每次获取图片都要从网上去获取,这将会非常耗费流量,而且效果也不太好,而DiskLruCache则很好地解决这个问题,只要下载一次,就将这张图片写入磁盘缓存,接下来每次从磁盘缓存中获取就可以了,省时省流量,可惜DiskLruCache暂时还没有写进SDK中,所以只能自己上网去下载源代码放进自己的项目中去。看看它是如何使用的:创转载 2016-08-04 23:58:11 · 646 阅读 · 0 评论 -
View事件分发机制
距离我上一次写博客已经是大半年的时间了,自己一毕业之后就在做一个很大的项目,一直都没有时间去学习,去沉淀,去积累,感觉这样子的状态是不行的,所以最近又重新开始学习起来。因为我负责的部分有挺多点击,长按,滑动的事件,所以这次就分析一下android里面View的事件分发机制。一、为什么要有事件分发android里面的View都是树形结构的,那么几个view就有重叠在一起的可能性,当我们点...原创 2018-03-18 22:01:03 · 182 阅读 · 0 评论