记录点滴
Zygote
和system_server
是Android系统中最重要的两个进程,任何一个进程的死亡都会导致Java世界的崩溃。
之前在《zygote启动过程》中介绍了zygote的启动过程,本文继续分析system_server启动过程。
Zygote
和system_server
是Android系统中最重要的两个进程,任何一个进程的死亡都会导致Java世界的崩溃。其中,zygote由linux系统的1号进程init直接fork而来,而system_server进程由zygote进程fork而来。
通过adb shell连接到设备,可以进行验证:
Zygote本身是一个Native应用程序,与驱动、内核等均无关系。
“Android中的View” 知识点学习梳理,包括了View事件的处理、View绘制3大流程等内容。
用XMind画的思维导图,导出为HTML格式了,点开页面可以查看清晰的图片,以及各部分的导出文字。
“Android中的IPC机制” 知识点学习梳理,包括了Android中常见的几种IPC的总结和对比。
用XMind画的思维导图,导出为HTML格式了,点开页面可以查看清晰的图片,以及各部分的导出文字。
因为图片太大,如果渲染为与本站一致的主题会导致图片看不清,所以本页面未进行样式渲染,比较丑,凑合着看吧。😊
关于Lint的一些基本知识,以及自定义Lint如何实现,可以参考我的系列文章:
Android Lint工作原理剖析
浅谈Android自定义Lint规则的实现 (一)
浅谈Android自定义Lint规则的实现 (二)
相关Demo代码可以参见我的github代码库:
CustomLintDemo
上一篇文章针对Android自定义Lint规则的总体开发流程做了介绍,本文针对java源代码Lint检测方法做细节介绍。由于网上关于自定义Lint规则的文章比较有限,且对于lombok.ast库的相关细节几乎没有文档可用,所以本文内容主要是根据自身开发经验做的总结,难免会有疏漏或错误,还请各位大神批评指正。
最近在做一个基于Android Lint的自定义静态代码检查功能库,这里做一个简单的总结。前半部分介绍SDK自带Android Lint的功能与配置使用方法,后半部分介绍扩展自定义Lint规则库的开发流程。
关于Lint的一些基本知识,以及自定义Lint如何实现,可以参考我的系列文章:
Android Lint工作原理剖析
浅谈Android自定义Lint规则的实现 (一)
浅谈Android自定义Lint规则的实现 (二)
相关Demo代码可以参见我的github代码库:
CustomLintDemo
Android Lint是一个静态代码分析工具,它能够对你的Android项目中潜在的bug、可优化的代码、安全性、性能、可用性、可访问性、国际化等进行检查。
在Android SDK Tools 16及更高的版本中,Lint工具会自动安装。通过它对Android工程源代码进行扫描和检查,可发现潜在的问题,以便程序员及早修正这个问题。Android Lint提供了命令行方式执行,还与IDE(如Android Studio)进行了集成,并提供了xml和html形式的输出报告。
看了上面的介绍可能大家依然很迷惑“这货到底有啥用”,其实我们平时在Android开发过程中一直在享受Lint带来的便利。比如,下面图中的警告和错误提示,相信大家应该很熟悉吧:
注解(Annotation)机制从Java 5开始被引入,它能够向源代码中添加句法(syntactic)元数据。类、方法、变量(variables)、参数(parameters)、包(packages)都可以被注解。与Javadoc标签不同,Java注解(Annotation)能够被反射,因为它们能够被嵌入在编译器生成的class文件中,并且可以被Java虚拟机保留使得在运行时也可获取。
ProGuard是一款免费的Java class文件收缩器、优化器、混淆器和预校验器。
ProGuard 已集成到 Android 构建系统,它通过移除无用的代码以及使用语义隐晦的名称来重命名类、字段和方法,从而达到压缩、优化和混淆代码的目的。最终您将获得一个较小的 .apk 文件,此文件更难于进行反向工程。由于 ProGuard 会使应用更难于进行反向工程,因此当应用使用对安全性要求极高的功能时(例如,当您向应用授予许可时),您必须使用此工具。当您在调试模式下构建应用时,就无需处理混淆后的代码。是否运行 ProGuard 完全由您决定。
Proguard通过删除代码中在运行期间不是绝对必要的信息,来防止静态分析。相比于把代码按照它原来的样子呈现出来,这已经前进了一大步,但它仍然是一种被动的方法。
ProGuard的提供者同时提供了另外两种针对Android平台的更高级的工具:Dexguard和Dexguard Enterprise,能够抵御静态分析和动态分析。它们兼容ProGuard的配置,并为额外的功能提供了额外的选项。如果你需要更高的安全性来防止你的代码被逆向分析,可以尝试这两个工具,不过它们是收费的。
三者的对比如下:
最近的工作是做了两个自定义控件:
①可以缩放的时间轴
②吸附在在时间轴上有两个滑动按钮的录像片段选择器
真机测试效果如下面的gif动画所示:
———————–最近更新 华丽丽的分割线—————————
由于很多小伙伴私信我要源码,所以最近整理了一下,放在github上了,地址:
https://github.com/ljfxyj2008/ScalableTimebar
———————–End of 最近更新—————————