posted @ 2017-07-01 21:25 行歌 阅读(1066) 评论(0) 推荐(1) 编辑
摘要:
在Android开发中,Binder主要用于Service中,包括AIDL和Messenger,其中Messenger的底层实现就是AIDL,所以我们这里通过AIDL来分析一下Binder的工作机制。 一、在Android Studio中建立AIDL 首先,我们需要建立一个AIDL 1.在建立了对应 阅读全文
摘要:
一、引言: 在Java中我们只需要轻轻地new一下,就可以为实例化一个类,并分配对应的内存空间,而后似乎我们也可以不用去管它,Java自带垃圾回收器,到了对象死亡的时候垃圾回收器就会将死亡对象的内存回收。 真的只要根据需要巴拉巴拉地new而不用管内存回收了吗?那为什么会存在这么多的内存溢出情况呢?下 阅读全文
posted @ 2017-06-30 13:49 行歌 阅读(419) 评论(0) 推荐(0) 编辑
摘要:
一、引言: 单例(Singleton)通常被用来代表那些本质上唯一的系统组件,在Java或是Android开发中有着广泛的应用,比如说建立一个数据API接口的管理类就可以采用单例模式,又或者是建立一个实现图片加载功能的类。简单来说,单例即保证一个类仅有一个实例,并可以提供一个访问它的全局访问点,从而 阅读全文
posted @ 2017-06-29 20:49 行歌 阅读(146) 评论(1) 推荐(0) 编辑
摘要:
一、引言 数据的序列化在Android开发中占据着重要的地位,无论是在进程间通信、本地数据存储又或者是网络数据传输都离不开序列化的支持。而针对不同场景选择合适的序列化方案对于应用的性能有着极大的影响。 从广义上讲,数据序列化就是将数据结构或者是对象转换成我们可以存储或者传输的数据格式的一个过程,在序 阅读全文
posted @ 2017-06-24 15:51 行歌 阅读(3639) 评论(0) 推荐(0) 编辑
摘要:
一、引言 在Android开发中,采用Builder模式的代码随处可见,比如说Android系统对话框AlertDialog的使用或者是Android中的通知栏(Notification)的使用,又比如说在一些常用的第三方库中也随处可见其踪迹,比如说一些常用的网络请求库如OkHttp或者是retro 阅读全文
posted @ 2017-06-23 21:58 行歌 阅读(1072) 评论(0) 推荐(0) 编辑
摘要:
对于一个App的UI而言,在流畅性上的改进目标其实就是降低屏幕绘制的延迟,创建流畅和稳定的帧率以避免卡顿。 在理想情况下,全部的测量、布局和绘制的时间最好在16ms以内,这样才能保证屏幕运行的顺畅性。而如何对屏幕渲染和UI性能进行评估和分析呢,在Android SDK中集成了一些工具用来策略APP的 阅读全文
posted @ 2017-06-20 10:26 行歌 阅读(534) 评论(0) 推荐(0) 编辑
摘要:
Java8中的新特性 一、Lambda表达式 Lambda表达式可以理解为一种可传递的匿名函数:它没有名称,但又参数列表、函数主体、返回类型,可能还有一个可以抛出的异常列表。 匿名:和匿名类类似的,它没有明确的名字 函数:Lambda函数不属于某个特定的类,但和方法一样都具有参数列表、函数主体、返回 阅读全文
posted @ 2017-06-12 21:38 行歌 阅读(997) 评论(1) 推荐(0) 编辑
摘要:
一、引入: Android提供了View来进行绘图处理,在大部分情况下,View都能满足绘图需求。大家都知道View是通过刷新来重绘视图,Android系统通过发出VSYNC信号来进行屏幕的重绘,刷新的间隔时间为16ms。如果在16ms内View完成了你所需要执行的所有操作,那么用户在视觉上,就不会 阅读全文
posted @ 2017-06-09 21:43 行歌 阅读(900) 评论(1) 推荐(0) 编辑
摘要:
这几天在上海出差,忙里偷闲学习了一下Apk的反编译工具的基本使用。下面就简单介绍一下如何将我们从网上下载的Apk文件进行反编译得到我们想要获得的资源文件和源码。 一、Apk文件组成 Android的应用程序APK文件说到底也是一个压缩文件,那么可以通过解压缩得打里面的文件内容,不过很显然,当你去解压 阅读全文
posted @ 2017-06-09 10:09 行歌 阅读(1444) 评论(0) 推荐(0) 编辑