<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[赵小龙同学的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/forward222</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; forward222]]></copyright><item><title><![CDATA[深入字节码]]></title><link>https://blog.youkuaiyun.com/forward222/article/details/124895940</link><guid>https://blog.youkuaiyun.com/forward222/article/details/124895940</guid><author>forward222</author><pubDate>Sat, 21 May 2022 11:17:37 +0800</pubDate><description><![CDATA[字节码万岁！！！https://mp.weixin.qq.com/s/2-ztm5A0W8mDtCrzH_cX-g



字节一面：能聊聊字节码么？https://mp.weixin.qq.com/s/h9n6wkqyyrAN6EbmMlFBlA
]]></description><category></category></item><item><title><![CDATA[从责任链模式看Android事件分发]]></title><link>https://blog.youkuaiyun.com/forward222/article/details/114964436</link><guid>https://blog.youkuaiyun.com/forward222/article/details/114964436</guid><author>forward222</author><pubDate>Thu, 18 Mar 2021 09:44:54 +0800</pubDate><description><![CDATA[从责任链模式看Android事件分发https://mp.weixin.qq.com/s/sSPFz3E5gncYiMMFtF_xlg


每当用户触摸了屏幕，会发出一系列的事件 ACTION_DOWN、ACTION_MOVE、ACTION_UP，如果用户点击后触发了 ACTION_DOWN，后续的事件难道每次都要一个个遍历去寻找目标 View 吗，系统肯定有个机制可以保证快速的找到目标 View。在 ViewGroup 中有个 mFirstTouchTarget 字段就是用来做这个的。

这里也是使用..]]></description><category></category></item><item><title><![CDATA[Android DDMS在mac下打开卡死的问题]]></title><link>https://blog.youkuaiyun.com/forward222/article/details/111912517</link><guid>https://blog.youkuaiyun.com/forward222/article/details/111912517</guid><author>forward222</author><pubDate>Tue, 29 Dec 2020 14:43:53 +0800</pubDate><description><![CDATA[Android DDMS在mac下打开卡死的问题https://www.jianshu.com/p/df924fa08e68


DDMS 是一款分析Android 性能很好的工具，但是Google爸爸宣布不维护了，导致了现在Android studio 3.0之上的版本都无法打开，只能显示，但是啥都操作不了，原因是jdk的不兼容，如果java version 大于等于1.8.0_152，就会出问题，151版本的就没问题好在有教程。

1.找到sdk所在的目录，找到monitor,双击打开，或者配置了A..]]></description><category></category></item><item><title><![CDATA[Android v1/v2/v3 签名机制]]></title><link>https://blog.youkuaiyun.com/forward222/article/details/111321500</link><guid>https://blog.youkuaiyun.com/forward222/article/details/111321500</guid><author>forward222</author><pubDate>Thu, 17 Dec 2020 18:21:16 +0800</pubDate><description><![CDATA[Android | 他山之石，可以攻玉！一篇文章看懂 v1/v2/v3 签名机制https://juejin.cn/post/6906882748909092871

]]></description><category></category></item><item><title><![CDATA[Android AudioRecord录音音量大小]]></title><link>https://blog.youkuaiyun.com/forward222/article/details/109956864</link><guid>https://blog.youkuaiyun.com/forward222/article/details/109956864</guid><author>forward222</author><pubDate>Sun, 22 Nov 2020 16:31:02 +0800</pubDate><description><![CDATA[Android AudioRecord录音音量大小https://blog.youkuaiyun.com/lhmin5200/article/details/65632915



private doublecalculateVolume(byte[] buffer){

       double sumVolume = 0.0;

       double avgVolume = 0.0;

       double volume = 0.0;

       for(int i = 0; i &lt; ..]]></description><category></category></item><item><title><![CDATA[Gradle根据参数配置不同的依赖]]></title><link>https://blog.youkuaiyun.com/forward222/article/details/109811615</link><guid>https://blog.youkuaiyun.com/forward222/article/details/109811615</guid><author>forward222</author><pubDate>Thu, 19 Nov 2020 14:37:19 +0800</pubDate><description><![CDATA[Gradle根据参数配置不同的依赖 https://zhuanlan.zhihu.com/p/86118527



dependencies {
    implementation 'com.android.support:appcompat-v7:26.0.2'
    implementation 'com.android.support:design:26.0.2'

    if ("${rootProject.ext.isUploadMaven}" == ("false")) {
     .]]></description><category></category></item><item><title><![CDATA[圆弧布局，卫星菜单]]></title><link>https://blog.youkuaiyun.com/forward222/article/details/109645835</link><guid>https://blog.youkuaiyun.com/forward222/article/details/109645835</guid><author>forward222</author><pubDate>Thu, 12 Nov 2020 16:29:25 +0800</pubDate><description><![CDATA[https://github.com/oguzbilgener/CircularFloatingActionMenu





https://github.com/siyamed/android-satellite-menu





https://github.com/ogaclejapan/ArcLayout


A very simple arc layout library for Android.




https://developer.android.com/reference/an..]]></description><category></category></item><item><title><![CDATA[greenDAO 使用]]></title><link>https://blog.youkuaiyun.com/forward222/article/details/109527043</link><guid>https://blog.youkuaiyun.com/forward222/article/details/109527043</guid><author>forward222</author><pubDate>Fri, 06 Nov 2020 10:38:38 +0800</pubDate><description><![CDATA[greenDAO Documentationhttps://greenrobot.org/greendao/documentation/


Tutorials and How-Tos

How to get started

Introduction–project setup

Modelling entities– schema and annotations

Sessions– identity scope and session cache

Queries– using the ...]]></description><category></category></item><item><title><![CDATA[bottomsheetdialogfragment nav bar 黑色变白色]]></title><link>https://blog.youkuaiyun.com/forward222/article/details/109451784</link><guid>https://blog.youkuaiyun.com/forward222/article/details/109451784</guid><author>forward222</author><pubDate>Mon, 02 Nov 2020 16:36:19 +0800</pubDate><description><![CDATA[https://stackoverflow.com/questions/47553936/prevent-bottomsheetdialogfragment-covering-navigation-bar


I had the sameproblemand I finally found a solution which is not hacky or needs an orbitant amount of code.

This Method replaced the window backgro...]]></description><category></category></item><item><title><![CDATA[谷歌官方字体方案]]></title><link>https://blog.youkuaiyun.com/forward222/article/details/109332572</link><guid>https://blog.youkuaiyun.com/forward222/article/details/109332572</guid><author>forward222</author><pubDate>Wed, 28 Oct 2020 14:45:28 +0800</pubDate><description><![CDATA[可下载字体https://developer.android.com/guide/topics/ui/look-and-feel/downloadable-fonts



XML 中的字体https://developer.android.com/guide/topics/ui/look-and-feel/fonts-in-xml

]]></description><category></category></item><item><title><![CDATA[Android 下雪]]></title><link>https://blog.youkuaiyun.com/forward222/article/details/109326370</link><guid>https://blog.youkuaiyun.com/forward222/article/details/109326370</guid><author>forward222</author><pubDate>Wed, 28 Oct 2020 09:41:02 +0800</pubDate><description><![CDATA[Snowfallhttps://blog.stylingandroid.com/snowfall/

]]></description><category></category></item><item><title><![CDATA[Xposed原理分析]]></title><link>https://blog.youkuaiyun.com/forward222/article/details/109237478</link><guid>https://blog.youkuaiyun.com/forward222/article/details/109237478</guid><author>forward222</author><pubDate>Fri, 23 Oct 2020 11:06:48 +0800</pubDate><description><![CDATA[Xposed原理分析https://www.cnblogs.com/boycelee/p/13418371.html


安卓系统启动

什么zygote？

init是内核启动的第一个用户级进程，zygote是由init进程通过解析init.zygote.rc文件而创建的，zygote所对应的具体可执行程序是app_process，所对应的源文件是App_main.cpp，进程名称为zygote。

init.zygote.rc：


service zygote /system/bin/app_pr..]]></description><category></category></item><item><title><![CDATA[Android 官方 Kotlin 协程]]></title><link>https://blog.youkuaiyun.com/forward222/article/details/109222922</link><guid>https://blog.youkuaiyun.com/forward222/article/details/109222922</guid><author>forward222</author><pubDate>Thu, 22 Oct 2020 15:20:35 +0800</pubDate><description><![CDATA[Android 上的 Kotlin 协程https://developer.android.com/kotlin/coroutines

]]></description><category></category></item><item><title><![CDATA[MessageQueue nativePollOnce 一个不一样的 ANR]]></title><link>https://blog.youkuaiyun.com/forward222/article/details/109221807</link><guid>https://blog.youkuaiyun.com/forward222/article/details/109221807</guid><author>forward222</author><pubDate>Thu, 22 Oct 2020 14:43:22 +0800</pubDate><description><![CDATA[一个不一样的 ANRhttp://tao93.top/2019/01/18/%E4%B8%80%E4%B8%AA%E4%B8%8D%E4%B8%80%E6%A0%B7%E7%9A%84%20ANR/


经过一番查找与验证，我发现原因大致是，当一个 Java 线程抛出了未捕获的异常时，JVM 先会调用到 UncaughtExceptionHandler，然后再会把此线程停止掉。所以这段代码中，如果主线程抛出异常，那么第 6 行的方法结束后，主线程就会被 JVM 给停止掉，既然主线程都停止掉了，那自然就无..]]></description><category></category></item><item><title><![CDATA[Android launchMode]]></title><link>https://blog.youkuaiyun.com/forward222/article/details/109186241</link><guid>https://blog.youkuaiyun.com/forward222/article/details/109186241</guid><author>forward222</author><pubDate>Tue, 20 Oct 2020 18:26:26 +0800</pubDate><description><![CDATA[当我按下 Home 键再切回来，会发生什么？https://juejin.im/post/6883741254614515720



Understand Android Activity's launchMode: standard, singleTop, singleTask and singleInstancehttps://inthecheesefactory.com/blog/understand-android-activity-launchmode/en

...]]></description><category></category></item><item><title><![CDATA[Gradle Transform]]></title><link>https://blog.youkuaiyun.com/forward222/article/details/109182962</link><guid>https://blog.youkuaiyun.com/forward222/article/details/109182962</guid><author>forward222</author><pubDate>Tue, 20 Oct 2020 16:01:17 +0800</pubDate><description><![CDATA[Javassist 在RA 中的应用https://bytedance.feishu.cn/docs/doccnwmMlBfNVmHYVkJ0BBi0ILd



Talk About Transform APIhttps://bytedance.feishu.cn/docs/doccn2xC4wxPLDaAwBZFtOkuOlb#

]]></description><category></category></item><item><title><![CDATA[Java 中调用 Kotlin]]></title><link>https://blog.youkuaiyun.com/forward222/article/details/109182553</link><guid>https://blog.youkuaiyun.com/forward222/article/details/109182553</guid><author>forward222</author><pubDate>Tue, 20 Oct 2020 15:46:46 +0800</pubDate><description><![CDATA[Java 中调用 Kotlinhttps://www.kotlincn.net/docs/reference/java-to-kotlin-interop.html


later
]]></description><category></category></item><item><title><![CDATA[Android SharedPreferences的设计与实现]]></title><link>https://blog.youkuaiyun.com/forward222/article/details/109176552</link><guid>https://blog.youkuaiyun.com/forward222/article/details/109176552</guid><author>forward222</author><pubDate>Tue, 20 Oct 2020 11:00:18 +0800</pubDate><description><![CDATA[反思｜官方也无力回天？Android SharedPreferences的设计与实现https://juejin.im/post/6884505736836022280


当SharedPreferences对象第一次通过Context.getSharedPreferences()进行初始化时，对xml文件进行一次读取，并将文件内所有内容（即所有的键值对）缓到内存的一个Map中，这样，接下来所有的读操作，只需要从这个Map中取就可以了。虽然节省了I/O的操作，但另一个视角分析，当xml中数据量过大时，..]]></description><category></category></item><item><title><![CDATA[Linux 知识小集合]]></title><link>https://blog.youkuaiyun.com/forward222/article/details/109045964</link><guid>https://blog.youkuaiyun.com/forward222/article/details/109045964</guid><author>forward222</author><pubDate>Tue, 13 Oct 2020 10:23:26 +0800</pubDate><description><![CDATA[对不起，学会这些 Linux 知识后，我有点飘https://juejin.im/post/6881755746216706062


目录

Linux 简介

	Linux 接口
		Linux 组成部分
		Shell
		Linux 应用程序
		Linux 内核结构
	
	Linux 进程和线程
	基本概念
		Linux 进程间通信
		信号 signal
			管道 pipe
			共享内存 shared memory
			先入先出队列 FIFO
			消息队列 Message Queu..]]></description><category></category></item><item><title><![CDATA[Android Splash页秒开 Activity白屏 Activity黑屏]]></title><link>https://blog.youkuaiyun.com/forward222/article/details/109044692</link><guid>https://blog.youkuaiyun.com/forward222/article/details/109044692</guid><author>forward222</author><pubDate>Tue, 13 Oct 2020 09:45:02 +0800</pubDate><description><![CDATA[带你重新认识：Android Splash页秒开 Activity白屏 Activity黑屏https://blog.youkuaiyun.com/yanzhenjie1003/article/details/52201896


闪屏原因剖析StartingWindow（Preview Window）

我们正常开发中会在Activity的onCreate()方法中调用setContentView(View)设置该Activity的显示布局，那么问题就来了，既然我们设置了布局，为什么启动的时候还会白屏或者黑屏而不..]]></description><category></category></item></channel></rss>