自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(13)
  • 收藏
  • 关注

原创 Retrofit源码分析

Retrofit是Square团队对网络请求库Okhttp的进一步封装,趁着刚分析完Okhttp源码的热乎劲顺带着把Retrofit源码又过了一遍。Okhttp源码分析戳这里Retrofit基本使用老规矩分析源码从最简单的流程来,一个简单的Retrofit请求如下: OkHttpClient okHttpClient = new OkHttpClient.Builder().build(...

2019-08-05 19:04:51 234

原创 Okhttp3源码浅析

发起一个简单的Okhttp请求:OkHttpClient okHttpClient = new OkHttpClient.Builder().build(); Request request = new Request .Builder() .url("https://www.baidu.com") ...

2019-08-04 18:15:40 251

原创 Java中的Future和FutureTask探索

什么时候要用到Future?当程序的执行需要依赖于另一个线程的执行完成或计算结果时,这时候就需要线程阻塞等待另一个线程的执行。Future的get()方法会阻塞当前线程,知道另一个线程执行完毕并返回结果。什么是Future?Future是一个接口,提供了一些方法定义,用于控制任务的执行及获取执行状态及结果,源码如下:public interface Future<V> { ...

2019-07-31 14:29:50 212

原创 编译Android源码(9.0)

参考了官方文档和前辈们的编译经验,但还是遇到了不少坑,在这里记录一下过程。官方文档地址:https://source.android.google.cn/source/downloading下面写一下具体步骤:1. 新建大小写敏感的磁盘映像编译需要大小写敏感的环境,mac如果没有自行更改过磁盘格式默认是大小写不敏感的,所以要在mac上划分出一个大小写敏感的磁盘映像。前辈们建议150G,然而...

2019-07-09 16:16:22 2469

原创 Center os安装MySQL8.0启动失败的解决办法

最近把MySQL从5.6升级到8.0,安装完毕无法启动tail -n 50 /var/log/mysqld.log 看了一下最近的日志2019-06-26T03:28:46.058324Z 0 [System] [MY-010910] [Server] /usr/sbin/mysqld: Shutdown complete (mysqld 8.0.16) MySQL Community...

2019-06-26 14:57:53 2775

原创 Google Play通话记录和短信权限使用限制

Google Play在Facebook泄密丑闻之后收紧对应用获取隐私权限的限制,凡是在清单文件声明了通话记录和短信相关权限的应用都会收到Google的限期整改通知,否则将被下架。通话记录相关权限(Android 9.0单独给这些全新新设了个危险权限组):READ_CALL_LOG、WRITE_CALL_LOG、ROCESS_OUTGOING_CALLS短信相关权限:READ_SMS、SE...

2019-05-22 18:23:07 5137

原创 Android事件分发机制源码执行流程分析

事件机制在应用开发中非常重要,手指与界面任何交互都会转化成一个个事件,通过事件机制完成一系列的逻辑处理,最终找到事件的响应者。理解事件机制我们才能准确的把握在具体情况下事件如何交由相应的View进行处理,开发过程中经常会遇到事件处理的问题,如自定义view、滑动冲突处理等思考几个问题:1.onTouchEvent ()、onTouch ()、onClick () 这几个方法哪个优先级高?这也是...

2019-05-15 14:20:50 254

原创 小程序开发踩坑记录

笔者作为一个Android开发,因公司需求边研究边开发持续了差不多一个月项目基本完工,把开发中遇到的问题及踩坑经历做了一下记录。其实小程序虽然是前端语言作为开发基础,但因为为是嵌入到微信内部的,考虑到仿原生应用的交互逻辑,其实移动端的一些思维要更符合小程序开发中的一些逻辑实现的解决思路,比如移动端任务栈的管理思想,业务逻辑导致的多个页面之间数据刷新问题,仿照移动端写一个类似的EventBus通知...

2019-03-09 18:30:31 484

原创 Window窗口布局层级结构源码分析

理解Activity的窗口层级在日常开发中也有着很重要的作用,举个例子我们日常开发中为了用户体验都会在耗时操作时显示一个loading动画,最容易想到的办法就是给页面套一层FrameLayout,但是大部分情况下我们都需要给页面添加loading,一个个页面添加重复的工作量太多,有没有简单的办法呢?当我们了解了窗口的布局层级后就会发现系统原本就会给我们的布局外面额外添加一个id为android...

2018-05-19 23:31:24 1096

原创 LayoutInflater源码执行流程

一直以来开发Android都是通过xml文件布局页面,也听有些朋友说过一些公司为了性能不让使用xml布局,只能通过纯代码的方式写界面。通过纯代码的方式和xml布局的方式各有优略:考虑性能当然纯代码更好,毕竟加载xml布局需要先读取文件,又要通过反射创建视图对象,效率自然没有纯代码高;但是就开发效率而言xml布局的方式更好,实时预览界面是非常大的优势,想想AndroidStudio跑一遍程序的耗...

2018-05-19 16:01:51 139

原创 Android系统启动流程图 —— 源码执行流程(android 6.0)

流程图展示了Android 6.0系统启动时源码的执行顺序,包含Zygote进程启动、SystemServer和应用进程的创建过程。具体源码分析参考Zygote进程启动流程、SystemServer进程启动流程、应用进程启动流程...

2018-03-02 10:39:35 1968

原创 Activity启动流程图 —— 源码执行流程(android 6.0)

流程图展示了Android 6.0系统Activty启动时源码的执行顺序,包含应用进程与SystemServer进程之间通过Binder机制通信的过程以及Activity生命周期方法的调用时机。具体源码分析此处不再班门弄斧,参考Android源码解析之(十四)-->Activity启动流程...

2018-03-02 10:02:05 3426 3

原创 MediaPlayer中onCompletion和onError的坑

问题:在做音乐播放功能时,发现点击下一曲或者上一曲有时会跳过曲目播放,通过检查下一曲next()和上一曲pre()方法逻辑并没有发现什么问题,为什么会出现这种情况呢?分析:onCompletion在未播放完成时调用

2017-05-25 13:57:42 16218 9

空空如也

空空如也

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

TA关注的人

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