<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[良秋的专栏]]></title><description><![CDATA[小小Android程序猿]]></description><link>https://blog.youkuaiyun.com/a740169405</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; a740169405]]></copyright><item><title><![CDATA[repository ‘Gradle Libs‘ was added by unknown code]]></title><link>https://blog.youkuaiyun.com/a740169405/article/details/121264449</link><guid>https://blog.youkuaiyun.com/a740169405/article/details/121264449</guid><author>a740169405</author><pubDate>Thu, 11 Nov 2021 11:28:38 +0800</pubDate><description><![CDATA[问题
Build was configured to prefer settings repositories over project repositories but repository ‘Gradle Libs’ was added by unknown code
解决
settings.gradle中，去除repositoriesMode.set(RepositoriesMode.FAIL_ON_PROJECT_REPOS)
dependencyResolutionManagement {
   ]]></description><category></category></item><item><title><![CDATA[Iterm2 配置（不断更新）]]></title><link>https://blog.youkuaiyun.com/a740169405/article/details/120310183</link><guid>https://blog.youkuaiyun.com/a740169405/article/details/120310183</guid><author>a740169405</author><pubDate>Wed, 15 Sep 2021 15:47:31 +0800</pubDate><description><![CDATA[基础配置
参考：https://www.jianshu.com/p/246b844f4449
Iterm2打开时自动source .bash_profile
vim ~/.zshrc

在最后一行 添加
source ~/.bash_profile


]]></description><category></category></item><item><title><![CDATA[使用Kotlin编写Gradle插件]]></title><link>https://blog.youkuaiyun.com/a740169405/article/details/108256310</link><guid>https://blog.youkuaiyun.com/a740169405/article/details/108256310</guid><author>a740169405</author><pubDate>Thu, 27 Aug 2020 11:43:24 +0800</pubDate><description><![CDATA[1. 首先在根目录的buid.gradle中添加编译期kotlin插件依赖
buildscript {
    ext.kotlin_version = '1.3.72'
    ext.gradleVersion = '3.2.1'
    repositories {
        google()
        jcenter()
    }
    dependencies {
        classpath "com.android.tools.build:gradle:$gradleVe]]></description><category></category></item><item><title><![CDATA[android 线程使用监控思路分享]]></title><link>https://blog.youkuaiyun.com/a740169405/article/details/106710932</link><guid>https://blog.youkuaiyun.com/a740169405/article/details/106710932</guid><author>a740169405</author><pubDate>Fri, 12 Jun 2020 10:45:41 +0800</pubDate><description><![CDATA[Java线程Hook
使用SandHook监控Thread#start()函数的调用
https://blog.youkuaiyun.com/ganyao939543405/article/details/86661040
Native线程Hook
使用XHook监控pthread_create方法的调用
导出堆栈信息
hook到线程启动动作之后，需要导出堆栈信息，分析堆栈信息能够知道启动线程的动作来自于哪个业务模块。
问题
因为java的线程最后也是走到native的pthread_create方法，所以hook到p]]></description><category></category></item><item><title><![CDATA[git 非空目录添加远程仓库地址]]></title><link>https://blog.youkuaiyun.com/a740169405/article/details/104837740</link><guid>https://blog.youkuaiyun.com/a740169405/article/details/104837740</guid><author>a740169405</author><pubDate>Fri, 13 Mar 2020 12:00:06 +0800</pubDate><description><![CDATA[场景
在gitHub或者gitLab添加一个仓库之后，想要将本地某目录内的文件添加到该仓库
方式一
将git仓库代码clone到本地，然后讲本地目录下的所有文件拷贝到clone之后的目录中
接着通过命令
git add .

git commit -m "xxxx"

git push origin head:master

这里需要注意 git add .会添加所有文件，本地需要添加.gitig...]]></description><category></category></item><item><title><![CDATA[使用ln命令创建软引用（相对路径与绝对路径）]]></title><link>https://blog.youkuaiyun.com/a740169405/article/details/104552254</link><guid>https://blog.youkuaiyun.com/a740169405/article/details/104552254</guid><author>a740169405</author><pubDate>Fri, 28 Feb 2020 11:08:23 +0800</pubDate><description><![CDATA[存在如下目录结构
|- home
	|- target.sh
	|- childDir

我们希望在childDir目录下创建一个home目录下的target.sh文件的软引用文件
使用绝对路径
使用绝对路径相对比较简单，命令行执行：
ln -s /home/target.sh /home/childDir/target.sh

使用相对路径
使用相对路径需要先使用命令行进入目标目录，步骤如下：
...]]></description><category></category></item><item><title><![CDATA[数据结构与算法LeetCode题目记录]]></title><link>https://blog.youkuaiyun.com/a740169405/article/details/102545383</link><guid>https://blog.youkuaiyun.com/a740169405/article/details/102545383</guid><author>a740169405</author><pubDate>Mon, 14 Oct 2019 12:20:22 +0800</pubDate><description><![CDATA[链表

206 反转链表
141 环形链表
21 合并两个有序链表
19 删除链表的倒数第N个节点
876 链表的中间结点

栈

20 有效的括号
155 最小栈
232 用栈实现队列
844 比较含退格的字符串
224 基本计算器
682 棒球比赛
496 下一个更大元素 I


...]]></description><category></category></item><item><title><![CDATA[Android NDK 剥离符号信息]]></title><link>https://blog.youkuaiyun.com/a740169405/article/details/98208545</link><guid>https://blog.youkuaiyun.com/a740169405/article/details/98208545</guid><author>a740169405</author><pubDate>Fri, 02 Aug 2019 15:55:38 +0800</pubDate><description><![CDATA[~/android-ndk-r14b/toolchains/arm-linux-androideabi-4.9/prebuilt/darwin-x86_64/bin/arm-linux-androideabi-strip --strip-all xxxx.so


]]></description><category></category></item><item><title><![CDATA[Android 线程状态]]></title><link>https://blog.youkuaiyun.com/a740169405/article/details/98178287</link><guid>https://blog.youkuaiyun.com/a740169405/article/details/98178287</guid><author>a740169405</author><pubDate>Fri, 02 Aug 2019 10:36:30 +0800</pubDate><description><![CDATA[Thread.java
Thread.cpp
说明




TERMINATED
ZOMBIE
线程死亡，停止运行


RUNNABLE
RUNNING/RUNNABLE
线程可运行或正在运行


TIMED_WAITING
TIMED_WAIT
执行了带有超时参数的wait、sleep或join函数


BLOCKED
MONITOR
线程阻塞，等待获取对象锁


WAITING
WAI...]]></description><category></category></item><item><title><![CDATA[面向对象的基本设计原则]]></title><link>https://blog.youkuaiyun.com/a740169405/article/details/94750352</link><guid>https://blog.youkuaiyun.com/a740169405/article/details/94750352</guid><author>a740169405</author><pubDate>Fri, 05 Jul 2019 19:04:40 +0800</pubDate><description><![CDATA[记忆方式
单  开  里  依  接  迪  组
单
单一职责
一个类应该只负责一件事情，比如Android中的Paint只负责和画笔有关的事情，颜色、大小等，Canvas只负责画布相关的事情，画布大小设置、背景等。
开
开闭原则
类应该对拓展开放，对修改封闭。也就是说新需求尽量不要修改之前的代码，通过拓展的方式新增功能，可以把经常修改的东西抽象出来。
里
里式替换原则
可以理解成Java的多态，...]]></description><category></category></item><item><title><![CDATA[Android Binder实现浅析-Binder驱动]]></title><link>https://blog.youkuaiyun.com/a740169405/article/details/94454223</link><guid>https://blog.youkuaiyun.com/a740169405/article/details/94454223</guid><author>a740169405</author><pubDate>Thu, 04 Jul 2019 10:53:34 +0800</pubDate><description><![CDATA[简介
Android是如何实现跨进程通信的，大家熟悉的Binder是什么，怎么设计的，进程间的数据如何发送接收的。本文将以及解析，并对Binder驱动实现、Native层实现、Java层实现三块做一个总结分析。
Binder学习思路

Binder与传统IPC的区别
Binder驱动的内部设计、数据结构
Binder驱动与应用程序进程（C/S）之间的通信过程
Android应用程序通过Binder...]]></description><category></category></item><item><title><![CDATA[Android View onVisibilityChanged onAttachedToWindow onDetachedFromWindow]]></title><link>https://blog.youkuaiyun.com/a740169405/article/details/78931901</link><guid>https://blog.youkuaiyun.com/a740169405/article/details/78931901</guid><author>a740169405</author><pubDate>Thu, 30 May 2019 19:08:40 +0800</pubDate><description><![CDATA[源码SDK: 24



简介

最近碰到一个问题，某一个Fragment里，有一个View上有一个动画，而当Fragment不可见的时候（切换到别的Fragment）。这时候，View的动画应该停止，以便节省主线程计算动画值，所以研究了View的onVisibilityChanged方法，在View不可见的时候关闭动画。



onAttachedToWindow与onDetachedFromW...]]></description><category></category></item><item><title><![CDATA[Gradle删除本地库文件]]></title><link>https://blog.youkuaiyun.com/a740169405/article/details/90055990</link><guid>https://blog.youkuaiyun.com/a740169405/article/details/90055990</guid><author>a740169405</author><pubDate>Fri, 10 May 2019 12:44:51 +0800</pubDate><description><![CDATA[简介
删除本地Gradle下载好的库版本
环境
Mac OS
位置
~/.gradle/caches/modules-2/files-2.1/
找到自己的库对应的group，删除即可

]]></description><category></category></item><item><title><![CDATA[Android 混淆配置]]></title><link>https://blog.youkuaiyun.com/a740169405/article/details/89879200</link><guid>https://blog.youkuaiyun.com/a740169405/article/details/89879200</guid><author>a740169405</author><pubDate>Mon, 06 May 2019 11:40:34 +0800</pubDate><description><![CDATA[混淆文件基础配置
# 在这里添加项目的代码混淆规则

# 混淆规则请参考:http://proguard.sourceforge.net/index.html#manual/usage.html

##################### 一般使用默认 #####################

# 不使用大小写混合类名,混淆后的类名为小写

-dontusemixedcaseclassnam...]]></description><category></category></item><item><title><![CDATA[Linux/Unix系统编程手册学习笔记]]></title><link>https://blog.youkuaiyun.com/a740169405/article/details/88407655</link><guid>https://blog.youkuaiyun.com/a740169405/article/details/88407655</guid><author>a740169405</author><pubDate>Mon, 11 Mar 2019 20:15:31 +0800</pubDate><description><![CDATA[什么是操作系统、内核

内核的职责

进程调度（CPU切换，资源调度等）
内存管理
提供文件系统（文件的创建删除等）
创建和终止进程
对设备的访问（鼠标、键盘等输入输出设备）
联网
提供系统调用接口（API）

内核态与用户态


...]]></description><category></category></item><item><title><![CDATA[Android ProGuard 还原堆栈]]></title><link>https://blog.youkuaiyun.com/a740169405/article/details/87726825</link><guid>https://blog.youkuaiyun.com/a740169405/article/details/87726825</guid><author>a740169405</author><pubDate>Tue, 19 Feb 2019 19:05:16 +0800</pubDate><description><![CDATA[使用Android SDK还原
位置： &amp;amp;lt;android sdk&amp;amp;gt;/tools/proguard/bin

proguardgui.sh GUI工具
retrace.sh 命令行工具

retrace.sh -verbose mapping.txt stacktrace.txt &amp;amp;gt; ./output.txt

其中-verbose代表显示返回类型以及参数类型（一般用不上）
如果你...]]></description><category></category></item><item><title><![CDATA[Android Studio 配置]]></title><link>https://blog.youkuaiyun.com/a740169405/article/details/84765217</link><guid>https://blog.youkuaiyun.com/a740169405/article/details/84765217</guid><author>a740169405</author><pubDate>Mon, 03 Dec 2018 14:50:31 +0800</pubDate><description><![CDATA[R文件飘红
如果能够编译通过，且clean之后还是飘红，试试下面的方法。

点击 Help &amp;gt; Edit Custom Properties。如果您之前从未编辑过 IDE 属性，Android Studio 将提示您新建一个 idea.properties 文件。点击 Yes 创建文件。
此时 idea.properties 文件将在 Android Studio 的编辑器窗口中打开。编辑文...]]></description><category></category></item><item><title><![CDATA[CMake使用总结，不断更新]]></title><link>https://blog.youkuaiyun.com/a740169405/article/details/82755458</link><guid>https://blog.youkuaiyun.com/a740169405/article/details/82755458</guid><author>a740169405</author><pubDate>Tue, 18 Sep 2018 11:47:01 +0800</pubDate><description><![CDATA[使用C++11
CMake 3.1或者更高版本
set(CMAKE_CXX_STANDARD 11)

更低版本
set(CMAKE_CXX_FLAGS &quot;${CMAKE_CXX_FLAGS} -std=c++11&quot;)

生成可执行文件
set(SOURCE_FILES
        main.cpp
        xxx.cpp)
        
add_executable(projec...]]></description><category></category></item><item><title><![CDATA[AndroidStudio使用localMaven]]></title><link>https://blog.youkuaiyun.com/a740169405/article/details/82381217</link><guid>https://blog.youkuaiyun.com/a740169405/article/details/82381217</guid><author>a740169405</author><pubDate>Tue, 04 Sep 2018 11:44:43 +0800</pubDate><description><![CDATA[简介

有时候开发一个三方库，开发阶段并不希望提交到服务器maven，只想提供给本地的其他项目使用的时候，可以使用localMaven，将三方库提交到本地计算机仓库，然后其他项目将localMaven配置到仓库查找列表，这样，可以避免不断的往服务器提交三方库而需要不断的提升版本号的问题。



发布三方库



三方库build.gradle配置



apply plugin: 'maven'
...]]></description><category></category></item><item><title><![CDATA[Mac OS10.12 编译Android源码8.1]]></title><link>https://blog.youkuaiyun.com/a740169405/article/details/81142263</link><guid>https://blog.youkuaiyun.com/a740169405/article/details/81142263</guid><author>a740169405</author><pubDate>Sat, 21 Jul 2018 11:02:01 +0800</pubDate><description><![CDATA[拉取源码

自行百度



启动编译

自行百度

编译遇见的坑

源码拉取，以及编译顺序大家都会，但是编译坑太多，坑得记一下，以免后面再掉下去。



Fuck Jack-Server

jack-server报错如下



[ 53% 48295/89583] Ensuring Jack server is installed and started
FAILED: setup-jack-se...]]></description><category></category></item></channel></rss>