安卓
文章平均质量分 82
android技术文章
失落夏天
安卓领域开发者,擅长解决安卓的各种性能问题,以及打造插件化,效率等框架。
横向对后台/IOS/前端等领域都有涉及。
展开
-
gradle中主模块/子模块渠道对应关系通过配置实现
我们开发过程中,经常会面对针对不同的渠道,要产生差异性代码和资源的场景。目前谷歌其实为我们提供了一套渠道包的方案,这里简单描述一下。比如我主模块依赖module1和module2。如果主模块中声明了2个渠道A和B,那么我们在module1和module2中,也可以选择创建对应的渠道A和B。这样当主模块选择A时,对应的子模块也会自动切换到渠道A。这时,主模块的渠道和子模块的渠道是一一对应的,如下图所示:谷歌提供的这种配置,可以满足大多数的场景。但是如果我依赖的模块数量特别多时,就会产生一个新的问题。原创 2023-10-02 17:18:19 · 563 阅读 · 0 评论 -
安卓设备监听全部输入信号
最近团队收到一个产品需求,需要监听安卓设备上用户是否有输入行为,以免定制推荐的时候打搅到用户。这里指的是设备上所有应用的输入行为,而不是单指某一个应用。这个需求还是蛮有挑战性的,需要涉及到很多FW层的知识,所以围绕着这个需求,定制了多个方案,并且也找了许多人进行讨论,总算有了一个相对可行的方案,因此,通过本文记录一下,也分享给有同样需求的后来者。这里先介绍一下大背景,我们是定制的设备,设备上有很多的APP,每个APP都是不同的团队来负责的。甚至于系统侧的代码和整体集成,也是不同的来团队负责的。原创 2023-07-17 17:22:04 · 3511 阅读 · 5 评论 -
Activity中startForResult的原理分析
本文会介绍以下内容:1.startActivityForResult简单实用;2.startActivityForResult的实现原理;3.startActivityForResult的一些扩展性问题。原创 2023-04-26 10:05:30 · 1860 阅读 · 0 评论 -
android源码-事件分发处理机制(下)-从信号源输入到处理完成的完整源码解读
android源码-事件分发处理机制(下)-从信号源输入到处理完成的完整源码解读。1.输入事件到处理完成的完整流程解读,从EventHub到APP侧的完整流程。2.InputDispatcher中是如何分发处理消息的;3.APP侧消费掉输入事件后的流程;4.何时会弹出ANR?原创 2022-10-01 10:12:51 · 2240 阅读 · 0 评论 -
android源码学习-源码学习目录推荐
适合每一名安卓开发者的源码技术文章清单,强烈建议按照文章中的顺序和建议来阅读。清单会持续更新。原创 2016-11-06 16:52:31 · 14817 阅读 · 0 评论 -
View绘制流程3-Vsync信号是如何发送和接受的
安卓中Vsync信号的全流程讲解原创 2022-08-19 12:11:34 · 2070 阅读 · 0 评论 -
android源码学习-Toast实现原理讲解
Toast的全流程讲解,包含原生Toast和自定义Toast两种方式。Toast相关的常问的知识点以及使用Toast过程中频繁遇到的问题和解决方案。原创 2022-08-14 20:06:31 · 4253 阅读 · 1 评论 -
android源码-事件分发处理机制(上)- java层事件分发流程
首先来一张图镇楼,说明一下方法的依次调用顺序:这张图囊括了,从native回调java,一直到ViewGroup处理的所有方法堆栈调用。我把事件分发分为4个部分:第一部分:InputEventReceiver1、当用户点击了屏幕上的某个位置之后,native层会接收到。会通过方法回调通知java层这个点击事件。方法位于InputEventReceiver类中的dispathIn...原创 2016-11-06 18:43:41 · 1824 阅读 · 0 评论 -
android源码学习-Handler机制及其六个核心点
安卓Handler源码全面讲解原创 2022-02-28 18:20:14 · 65208 阅读 · 11 评论 -
阅读android中frameworks层代码的几种方式
查看frameworks层代码的几种方式,比较每一种的优劣,方便跳转最适合读者的方式。原创 2022-08-02 14:36:23 · 1830 阅读 · 0 评论 -
android四大组件之一-Activity实现原理分析
关于Activity启动流程中最详细和完整的文章,并且结合实际项目中的问题进行讲解。本篇文章主要会讲以下内容:1.Activity启动流程的基本介绍;2.APP侧启动Activity的流程;3.系统侧处理请求启动Activity的流程;4.APP收到系统通知后生成Activity和执行其生命周期的完整流程;生命和唤起Activity的流程;5.一些关于Activity的扩展性问题;原创 2023-05-04 09:30:30 · 1867 阅读 · 2 评论 -
android中AMS通知Zygote去fork进程为什么使用socket而不使用binder?
android中AMS通知Zygote去fork进程为什么使用socket而不使用binder?通过综合各种文章的原理描述,加之源码的阅读以及实际的尝试,得出一个目前最为准确的答案。本篇文章中给出的答案,一定和你看到的任何一个版本都不一样。.........原创 2022-07-14 10:14:53 · 5183 阅读 · 11 评论 -
android四大组件之二-service实现原理分析
安卓中service的实现原理原创 2023-01-01 07:00:00 · 1407 阅读 · 1 评论 -
Activity事务管理讲解(ClientLifecycleManager)
安卓9开始,Activity的启动流程中,不再是系统侧直接通知APP去执行相应的生命周期,而是通过ClientLifecycleManager事务管理来替代,即系统侧构造一些事务对象,一次性传递给APP,由APP完成最终的执行。本文就带你一起了解一下Activity事务管理的实现原理。原创 2023-03-03 07:00:00 · 1060 阅读 · 1 评论 -
android源码学习- APP启动流程(android12源码)
百度一搜能找到很多讲APP启动流程的,但是往往要么就是太老旧(还是基于android6去分析的),要么就是不全(往往只讲了整个流程的一小部分)。所以我结合网上现有的文章,以及源码的阅读和调试,力求写出一篇最完整,最详细,最通俗易懂的文章,来讲清楚在android上,APP是如何启动的。.........原创 2022-07-09 19:36:58 · 7707 阅读 · 9 评论 -
android源码学习-Looper机制
Looper是android当中处理子线程和主线程通信的一个机制,我们顺着源码看一下这种机制是如何工作的。一.Looper如何启动我们知道,android里面,每一个app都是一个单独的进程,具有独立的内存空间。java中,一个进程启动的入口就是main方法。所以在android中,一个应用的启动,入口就是ActvitiyThread的main()方法。 public st...原创 2019-08-05 16:01:18 · 463 阅读 · 0 评论 -
安卓中MessageQueue能否被替换为BlockQueue?
安卓中MessageQueue能否被替换为BlockQueue?带你从源码和设计的角度去寻求问题的答案。原创 2022-07-18 19:39:11 · 684 阅读 · 0 评论 -
android四大组件之四-BroadCast实现原理分析
本篇文章主要会讲以下内容:1.广播的基本介绍,以及广播流程中涉及到的核心类介绍;2.动态广播接收者的注册流程;3.APP侧发送广播事件及系统侧接收;4.无序广播的发送流程;5.有序广播的发送流程;6.静态广播的发送流程;7.一些关于广播的扩展性问题;原创 2023-01-14 07:00:00 · 2510 阅读 · 1 评论 -
android四大组件之三-Provider实现原理分析
本篇主要会讲以下内容:1.ContentProvider的一些基本概念和流程2.ContentProvider中具体实现和注册流程。3.使用者拿到ContentProvider的binder引用后执行具体的操作,如quert/insert等等。4.关于ContentProvider的一些扩展性的问题。原创 2022-11-26 07:00:00 · 5046 阅读 · 0 评论 -
android源码学习-View如何显示到屏幕上
View如何关联到Window等待完善。原创 2019-07-09 10:58:59 · 1022 阅读 · 0 评论 -
android四大组件之一-activity实现原理分析(已废弃)
整理下,这样写还是不太好的。先总体分为几个流程,activity,Instrumentation,ActivityManagerService,ActivityStarter,ActivityThread这几大部分。其中activity,Instrumentation,ActivityThread属于用户进程,其余的属于系统进程。一Activity部分无论何种方式调用startActi...原创 2019-07-01 15:15:30 · 1250 阅读 · 0 评论 -
android14预览版介绍及解读
android14预览版详细解读和介绍原创 2023-02-10 11:13:19 · 3529 阅读 · 2 评论 -
android源码学习-android异常处理机制
安卓java层异常处理机制的原理原创 2022-08-18 19:28:23 · 1683 阅读 · 0 评论 -
android新版本适配-android13最全适配方案
安卓13最全最新适配方案原创 2022-09-25 09:31:45 · 15965 阅读 · 2 评论 -
View绘制流程2-安卓是如何执行measure/layout/draw三个绘制流程
讲解安卓是如何执行到measure/layout/draw这三个绘制流程的原创 2019-07-05 18:20:44 · 1366 阅读 · 3 评论 -
安卓页面绘制流程(2)Window和DecorView的创建
讲解DecorView,ViewRootImpl,Window的关系和创建时机。原创 2022-07-26 12:02:10 · 1786 阅读 · 0 评论 -
android新版本适配-android12最全适配方案
android12马上就要出了,所以要及时的进行适配,以免出现问题。这篇文章对适配android12遇到的问题做个记录。1.编译器(1.8.0_242-release)中出现异常错误AS问题。我原来的AS是4.1.2的版本,把compileSdkVersion升级到了31,发现编译不过,提示:什么乱七八糟的错误,只能推测有可能和buildtools的版本有关,升级tools.build到4.2.2之后,提示要升级AS。所以下载了一个最新的AS的Preview版本,然后在启动,就可以了原创 2021-10-14 20:20:34 · 4350 阅读 · 0 评论 -
安卓表格框架-ExcelView
一.项目介绍项目是仿照WPS中Excel的功能实现的,实现了显示,滑动,编辑等基本功能,并且结构简单,可扩展性强,绘制性能较高。当然,距离真正的商用还差有一定的差距,比如导出,公式计算,自动扩展等等都还未实现,希望后续使用的人能够一起参与进来,逐渐的进行完善和扩展。二.效果简介效果图1:效果图2:效果图3:效果图4:三.使用介绍1.依赖ExcelViewLib库。(PS:目前还未上传jcenter)2.简单使用方式参照app中的fragmen.原创 2021-10-28 15:54:39 · 4350 阅读 · 11 评论 -
DropBox系列-打造车载系统APM框架
利用dropbox,打造一个面向切面的APM车机稳定性监控框架,并且对车机上的APP和系统无任何的侵入性。原创 2022-12-18 07:00:00 · 1534 阅读 · 0 评论 -
protobuf实现原理
protobuf的实现原理一、protobuf的定义模型结构首先,先看一下protobuf的数据定义结构,下面是一个例子。option java_package = "com.lxl.servlet.pbmodel";option java_outer_classname = "DemoRequestProto";message DemoRequest{optional i...原创 2019-09-01 20:05:59 · 9129 阅读 · 1 评论 -
protobuf解析以及在android端反序列化Demo
最近看了下protobuf,研究的版本还是比较老的2.6.1,最主要的原因是对protobuf能否压缩传输数据的原理感兴趣。写个博客记录一下,免得以后忘了。先附上github的demo地址:https://github.com/aa5279aa/protobuff_androiddemodemo当中包含1、客户端工程ProtobufClient,客户端通过注解进行反序列化2、服务端...原创 2019-06-11 18:25:26 · 1512 阅读 · 0 评论 -
Freeline0.8.3.1.1(自定义版本)配置流程
之前携程使用的是0.8.3.1的版本,有一些BUG以及一些使用起来不方便的地方。所以我在0.8.3.1的基础上,增加了某些功能,发布了0.8.3.1.1的版本。0.8.3.1.1主要解决了以下几个问题:1、对于那些修改了会引起全量编译的文件,如果在配置白名单当中则验证其是否修改采用MD5值,而不是之前单纯的时间判断。应用场景:本地build.gradle文件修改了一直都不准...原创 2019-09-01 20:12:49 · 246 阅读 · 0 评论 -
腾讯持久化框架MMKV原理探究
一.MMKV实测二.SharedPreferences有哪些问题三.MMKV如何解决这些问题的原创 2022-06-30 15:40:56 · 3677 阅读 · 1 评论 -
OKHttp原理讲解之基本概念
OKHttp讲解的第一章,主要包含以下内容:1.OKHttp的简单使用;2.OKHttp的几个主要概念;3.OKHttp发送请求的基本流程;4.调度器中线程的管理;5.为什么选择使用OKHttp;抛砖引玉,引出后面更深层次的讲解。原创 2022-03-15 19:51:13 · 8465 阅读 · 1 评论 -
Flutter实战-flutter混合开发报错:Failed to apply plugin [class ‘FlutterPlugin‘]
也忘了之前改过什么了,前几天有个朋友给我留言说flutterMix的工程github的链接打不开。我才想起来前些时间为了应付公司信息安全部门的要求,把我很多项目都给删掉了,如果想恢复只能重新创建上传。本地flutter项目重新搭起来,报这个错误。百度谷歌了下,没有找到答案,好吧,只能靠自己了。报错如下:Project evaluation failed including an er......原创 2019-09-26 16:02:33 · 6458 阅读 · 0 评论 -
KOOM原理讲解(上)-JAVA内存分析
KOOM中对JAVA内存健康状态分析原理的逐步解析原创 2022-09-04 16:48:50 · 2721 阅读 · 1 评论 -
OKHttp原理讲解之责任链模式及扩展
本篇是OKHttp系列讲解的第二篇。本篇主要讲解内容:1.责任链模式介绍2.OKHttp中责任链的调用原理3.五个拦截器以及两个扩展类拦截器4.如何使用扩展类拦截器5.实际场景下扩展类拦截器的使用原创 2022-03-18 20:14:26 · 3185 阅读 · 0 评论 -
OKHttp原理讲解之RetryAndFollowUpInterceptor
OKHttp原理讲解之RetryAndFollowUpInterceptor原创 2022-03-22 20:27:21 · 1261 阅读 · 0 评论 -
安卓插件化框架Shadow原理分析
Shadow核心原理:Shadow号称无Hook点。核心原理是运用代理的方式,把原本的acitivty编译期间改成一个代理类,去代理宿主activity的所有生命周期。Demo流程:原理流程:改造点:原创 2022-02-23 10:31:35 · 17708 阅读 · 25 评论 -
ANDROID内存优化(大汇总——全)转载
转载请注明本文出自大苞米的博客(http://blog.csdn.net/a396901990),谢谢支持!写在最前:本文的思路主要借鉴了2014年AnDevCon开发者大会的一个演讲PPT,加上把网上搜集的各种内存零散知识点进行汇总、挑选、简化后整理而成。所以我将本文定义为一个工具类的文章,如果你在Android开发中遇到关于内存问题,或者马上要参加面转载 2016-08-03 17:24:46 · 773 阅读 · 0 评论