![](https://img-blog.csdnimg.cn/20201014180756922.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Android框架
文章平均质量分 92
Android框架分析
milan-xiao-tiejiang
2015年开始Android App开发,精通Java、Kotlin、c++等Android开发语言,阅读过系统源码及多方Android主流框架,对 vue、flutter等也有一定的认知。
Java方向技术全面,熟练掌握Spring、MySQL等Java Web相关技术,掌握分布式架构体系。
2020年转向c++工程师,重新系统学习c++语法,目前从事清洁服务机器人相关领域。
tip:北京寻求Android、c++职位
展开
-
给 Android 开发者的第一堂课
安卓(Android)是一种基于 Linux 内核(不包含 GNU 组件)的自由及开放源代码的操作系统。主要使用于移动设备,如智能手机和平板电脑,由美国 Google 公司和 开放手机联盟 领导及开发。Android 操作系统最初由 Andy Rubin 开发,主要支持手机。2005年8月由 Google 收购注资。2007年11月,Google 与84家硬件制造商、软件开发商及电信营运商组建开放手机联盟共同研发改良 Android 系统。随后 Google 以 Apache 开源许可证的授权方式,发布了原创 2022-01-24 10:56:06 · 2034 阅读 · 0 评论 -
Retrofit 支持 Kotlin 协程
上期 Retrofit 源码解读,这期查看下如何支持 Kotlin 协程的。(上篇的 retrofit 版本 可能与这篇不同)例子还是最简单的标准例子,定义 interface 接口,这里就不贴多余代码了 @GET("/app/v1/commodity") suspend fun commodity( @Query("pageNo") pageNo: Int, @Query("pageSize") pageSize: Int ): BaseRe原创 2020-09-12 18:42:37 · 936 阅读 · 0 评论 -
Android 实现 Facebook 第三方登录
Facebook 的 Android 登录链接,其中包含了很多账号注册信息。这里贴出一些 facebook 登录中重点的代码,申请的 App 相关信息这里就不多介绍,Facebook 此网页支持中文。项目的build.gradle 中repositories { mavenCentral()}模块下的build.gradle 中 implementation 'com.facebook.android:facebook-android-sdk:[4,5)'按照官网..原创 2020-07-31 12:39:09 · 2139 阅读 · 0 评论 -
由VirtualAPK了解插件化原理(二)
Android四大组件由于要和AMS频繁通信,AMS在SystemServer进程中,无法直接修改,所以四大组件的插件化是重中之重。Activity插件化首先必须了解Activity启动过程,这里不多介绍启动流程,放一张图可以看下,图是7.0的启动顺序。预先在AndroidManifest.xml中注册Activity来占坑,用来通过AMS的校验。VirtualAPK中占坑的...原创 2020-04-05 17:19:21 · 235 阅读 · 0 评论 -
由VirtualAPK了解插件化原理(一)
上篇了解了热修复原理,热修复技术主要用来修复bug,插件化则主要解决应用越来越庞大以及功能模块的解耦。插件化处理两部分业务,一种是自身的业务模块,一种是接入其他的应用业务。这种方式在淘宝、支付宝、美团、滴滴、360 等航母应用上十分常见。代表方案有阿里的 Atlas、360 的 RePlugin、滴滴的 VirtualAPK 等。插件化的apk分为宿主和插件两部分组成,先被安装到手机中的apk...原创 2020-04-05 13:48:01 · 369 阅读 · 0 评论 -
由Tinker了解热修复原理
资源修复首先必须了解Instant Run 机制Instant Run是Android Studio 2.0以后新增的一个运行机制,在 Android Plugin 2.3 之前,它使用的 Multidex 实现。在 Android Plugin 2.3 之后,它使用 Android 5.0 新增的 Split APK 机制。资源和 Manifest 都放在 Base APK 中, ...原创 2020-04-04 17:04:54 · 448 阅读 · 0 评论 -
Retrofit源码解析
Retrofit是RESTful的HTTP网络请求框架的封装。网络请求的工作本质上是OkHttp完成的,而Retrofit仅负责网络请求接口的封装。创建Retrofit实例 // 配置 Retrofit mRetrofit = new Retrofit.Builder() .baseUrl(Constant.API_YOUTU...原创 2020-03-28 20:17:15 · 198 阅读 · 0 评论 -
RxJava源码(衍生RxLifecycle)
Hot Observable无论有没有Subscriber订阅,事件始终都会发射。Hot Observable是共享数据的,对于Hot Observable的所有subscriber,他们会在同一时刻收到相同的数据。Cold Observable只有 Subscriber订阅时,才开始发射数据流, Cold Observable与订阅者只能是一对一的关系,即当有多个不...原创 2020-03-26 18:38:00 · 214 阅读 · 0 评论 -
RxJava源码(衍生RxBinding)
RxJava源码(从just开始)RxJava源码(简单操作符)RxJava源码(线程)RxJava源码(背压)RxJava源码(RxBinding)原创 2020-03-26 09:19:24 · 195 阅读 · 0 评论 -
深入理解Lru缓存
基于基础结构实现LRU缓存淘汰策略1)什么是缓存?缓存是一种提高数据读取性能的技术,在硬件设计、软件开发中都有着非广泛的应用,比如常见的CPU缓存、数据库缓存、浏览器缓存等等。2)为什么使用缓存?即缓存的特点缓存的大小是有限的,当缓存被用满时,哪些数据应该被清理出去,哪些数据应该被保留?就需要用到缓存淘汰策略。3)什么是缓存淘汰策略?指的是当缓存被用满时清理数据的优先顺序。...原创 2020-03-25 19:55:35 · 424 阅读 · 0 评论 -
RxJava源码(背压)
一、简介先来看下背压方式的简单实现: // 1、创建Flowable对象 val flowable = Flowable .create<Int>(object : FlowableOnSubscribe<Int?> { override fun subscrib...原创 2020-03-23 18:54:37 · 192 阅读 · 0 评论 -
RxJava源码(线程)
RxJava github地址:https://github.com/ReactiveX/RxJava/tree/2.xRxJava相关概念和一些用法这里不再赘述,可以查看官方文档官方文档以及其他的一些博客,闲话少说,这里直接从rx的github中简单用法去深入源码解读。这篇分析rx的线程切换,废话不多说,直接上代码 val currentTimeMillis = Sy...原创 2020-03-20 17:16:59 · 186 阅读 · 0 评论 -
RxJava源码(简单操作符)
RxJava github地址:https://github.com/ReactiveX/RxJava/tree/2.xRxJava相关概念和一些用法这里不再赘述,可以查看官方文档官方文档以及其他的一些博客,闲话少说,这里直接从rx的github中简单用法去深入源码解读。上篇文章中用了个最简单的示例详细的阅读了RxJava相关源码流程。抓住几个常用操作符大致浏览下,以增进印象,不再详...原创 2020-03-20 14:37:35 · 168 阅读 · 0 评论 -
RxJava源码(从 just 开始)
RxJava github地址:https://github.com/ReactiveX/RxJava/tree/2.xRxJava相关概念和一些用法这里不再赘述,可以查看官方文档官方文档以及其他的一些博客,闲话少说,这里直接从rx的github中简单用法去深入源码解读。直接上代码,这里用Flowable的just操作符将String对象“Hello world”打印出来。 ...原创 2020-03-20 13:13:11 · 278 阅读 · 0 评论