<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[佳朗的专栏]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/liujunpen</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; liujunpen]]></copyright><item><title><![CDATA[SELinux 关闭修改]]></title><link>https://blog.youkuaiyun.com/liujunpen/article/details/135152384</link><guid>https://blog.youkuaiyun.com/liujunpen/article/details/135152384</guid><author>liujunpen</author><pubDate>Fri, 22 Dec 2023 14:27:55 +0800</pubDate><description><![CDATA[方式一：修改配置文件。]]></description><category></category></item><item><title><![CDATA[Android的开机logo生成]]></title><link>https://blog.youkuaiyun.com/liujunpen/article/details/134930714</link><guid>https://blog.youkuaiyun.com/liujunpen/article/details/134930714</guid><author>liujunpen</author><pubDate>Mon, 11 Dec 2023 16:40:55 +0800</pubDate><description><![CDATA[注意事项：图片不能太大，要不会出问题，图片深度为8即可。生成可用的uboot和kernel的logo图片。可以通过命令转换BMP格式的图片。然后就可以使用新图替换旧图片，在。]]></description><category></category></item><item><title><![CDATA[制作 stun/turn 服务 Dockerfile 文件]]></title><link>https://blog.youkuaiyun.com/liujunpen/article/details/131721577</link><guid>https://blog.youkuaiyun.com/liujunpen/article/details/131721577</guid><author>liujunpen</author><pubDate>Fri, 14 Jul 2023 13:40:43 +0800</pubDate><description><![CDATA[制作 基于 ubuntu 18.04 的 stun/turn 服务 Dockerfile 文件]]></description><category></category></item><item><title><![CDATA[stun/tun 服务搭建详细记录]]></title><link>https://blog.youkuaiyun.com/liujunpen/article/details/131721492</link><guid>https://blog.youkuaiyun.com/liujunpen/article/details/131721492</guid><author>liujunpen</author><pubDate>Fri, 14 Jul 2023 13:35:27 +0800</pubDate><description><![CDATA[在 ubuntu 18.04 搭建 stun/tun 服务]]></description><category></category></item><item><title><![CDATA[生成Android系统的签名文件]]></title><link>https://blog.youkuaiyun.com/liujunpen/article/details/127901217</link><guid>https://blog.youkuaiyun.com/liujunpen/article/details/127901217</guid><author>liujunpen</author><pubDate>Thu, 17 Nov 2022 11:52:09 +0800</pubDate><description><![CDATA[鉴于网络中许多文章说的不是很明白，遂总结并自测后记录了下来。]]></description><category></category></item><item><title><![CDATA[Android 源码中添加一个产品]]></title><link>https://blog.youkuaiyun.com/liujunpen/article/details/127819555</link><guid>https://blog.youkuaiyun.com/liujunpen/article/details/127819555</guid><author>liujunpen</author><pubDate>Sat, 12 Nov 2022 13:50:50 +0800</pubDate><description><![CDATA[在系统源码中新增一个产品，本文基于 Adnroid 9.0 系统。]]></description><category></category></item><item><title><![CDATA[Ubuntu中火狐浏览器Firefox打不开网页]]></title><link>https://blog.youkuaiyun.com/liujunpen/article/details/125999969</link><guid>https://blog.youkuaiyun.com/liujunpen/article/details/125999969</guid><author>liujunpen</author><pubDate>Tue, 26 Jul 2022 17:57:11 +0800</pubDate><description><![CDATA[Ubuntu 系统一些网页使用火狐浏览器无法打开，比如简书...]]></description><category></category></item><item><title><![CDATA[【模拟器】Android Studio模拟器运行自己的编译的Android源码镜像（Android9.0~Android12已自测）]]></title><link>https://blog.youkuaiyun.com/liujunpen/article/details/121382332</link><guid>https://blog.youkuaiyun.com/liujunpen/article/details/121382332</guid><author>liujunpen</author><pubDate>Wed, 17 Nov 2021 17:13:29 +0800</pubDate><description><![CDATA[源码下载
下载：通过aosp-latest下载Android源码。
切换分支：
#源码目录下
cd .repo/manifests
repo init -b android-9.0.0_r3  #Android 9
repo sync



源码编译
source build/envsetup.sh
lunch aosp_x86_64-eng
make -j16 #16是cpu数目，根据自身电脑填写

#最终会在out/target/product/generic_x86_64中生成镜像文件



编译..]]></description><category></category></item><item><title><![CDATA[通过aosp-latest下载Android源码]]></title><link>https://blog.youkuaiyun.com/liujunpen/article/details/121161379</link><guid>https://blog.youkuaiyun.com/liujunpen/article/details/121161379</guid><author>liujunpen</author><pubDate>Fri, 05 Nov 2021 14:05:58 +0800</pubDate><description><![CDATA[步骤
#下载初始化包，同浏览器下载好一些，可以断点下载
wget -c https://mirrors.tuna.tsinghua.edu.cn/aosp-monthly/aosp-latest.tar 
tar xf aosp-latest.tar
cd AOSP   # 解压得到的 AOSP 工程目录
# 这时 ls 的话什么也看不到，因为只有一个隐藏的 .repo 目录
repo sync # 正常同步一遍即可得到完整目录
# 或 repo sync -l 仅checkout代码



报错一
...]]></description><category></category></item><item><title><![CDATA[【记录】Linux解压命令]]></title><link>https://blog.youkuaiyun.com/liujunpen/article/details/121156963</link><guid>https://blog.youkuaiyun.com/liujunpen/article/details/121156963</guid><author>liujunpen</author><pubDate>Fri, 05 Nov 2021 09:52:26 +0800</pubDate><description><![CDATA[解压tar文件


tar xf test.tar -C  /home/lang/Desktop 　　//解压test.tar到桌面


]]></description><category></category></item><item><title><![CDATA[【模拟器】android Studio 模拟器中直接运行系统应用]]></title><link>https://blog.youkuaiyun.com/liujunpen/article/details/121145201</link><guid>https://blog.youkuaiyun.com/liujunpen/article/details/121145201</guid><author>liujunpen</author><pubDate>Thu, 04 Nov 2021 16:25:13 +0800</pubDate><description><![CDATA[在android studio的模拟器中，可以直接通过android studio直接运行　 `android:sharedUserId="android.uid.system"`应用]]></description><category></category></item><item><title><![CDATA[Android系统进行OTA升级失败时能自动重启，防止一直处于recovery界面]]></title><link>https://blog.youkuaiyun.com/liujunpen/article/details/121099100</link><guid>https://blog.youkuaiyun.com/liujunpen/article/details/121099100</guid><author>liujunpen</author><pubDate>Tue, 02 Nov 2021 14:07:31 +0800</pubDate><description><![CDATA[前言
当系统因电量不足或断电、包拷贝失败或破损、升级版本为低版本等原因OTA失败时，
此时，系统会进入recovery界面，对于普通用户来说，可能会莫名其妙或不知所措。
因此，可以当升级失败时，系统可以自动重启，防止处于一直recovery界面。
方法
只需在出现失败时，让系统重启即可。当然在重启之前，需要让系统将日志输出，防止日志丢失或不全。

修改位置：bootable/recovery/recovery.cpp

case INSTALL_CORRUPT:
    ui-&gt;SetBackgrou]]></description><category></category></item><item><title><![CDATA[Android OTA升级包制作和验证]]></title><link>https://blog.youkuaiyun.com/liujunpen/article/details/116697324</link><guid>https://blog.youkuaiyun.com/liujunpen/article/details/116697324</guid><author>liujunpen</author><pubDate>Thu, 20 May 2021 20:21:25 +0800</pubDate><description><![CDATA[几个概念
**整包升级：**即整个Rom的数据都升级，所以升级包较大，但对要升级的目标系统的版本没有限制
**增量升级：**即只升级有变化的部分，所以升级包较小，但只能针对做比对的俩个系统版本之间来升级。

【完整升级包】：全量包，可直接用于整包升级使用。make otapackage命令后，会生成到out/target/product/{product_name}/{product_name}-ota-eng.{name}.zip
【原始升级包】：过程包，该包会包含更详细的信息。make otapacka]]></description><category></category></item><item><title><![CDATA[系统源码分析-系统缩略图小文件系统MiniThumbFile]]></title><link>https://blog.youkuaiyun.com/liujunpen/article/details/116229278</link><guid>https://blog.youkuaiyun.com/liujunpen/article/details/116229278</guid><author>liujunpen</author><pubDate>Wed, 28 Apr 2021 11:08:35 +0800</pubDate><description><![CDATA[前些日子看张绍文的高手课 / IO优化（中）时，里面提到了微信的一个小文件系统，但是没有细说，在评论区回答学员的问题时大概说了下原理：

作者回复: 这个小文件系统是应用层的方案，只是把一大堆的小文件组织成一个超大文件。并没有
替换原生的文件系统

笔者看到这块，突然想到很早之前看过的系统缩略图相关源码时，了解到的一个知识点跟其描述的很像，猜测大概就是类似的东西，随重新温习一下。]]></description><category></category></item><item><title><![CDATA[张绍文高手课：程序员修炼之路| 设计能力的提升途径 总结]]></title><link>https://blog.youkuaiyun.com/liujunpen/article/details/115894815</link><guid>https://blog.youkuaiyun.com/liujunpen/article/details/115894815</guid><author>liujunpen</author><pubDate>Tue, 20 Apr 2021 10:14:38 +0800</pubDate><description><![CDATA[编码历练：
先多写代码，在健壮性、稳定性方面提升自身的代码基础功，而且在孰能生巧中会积累了一些经验和技巧。
理论学习：
简单说就是看书、看博客，学你你能所得到的所有资源，但前提是内容质量要高。看是看不懂没关系，认真看就行。
实践：
用理论指定你的实践，在实践中深入理解理论，提升自身自信。
重温理论：
是最好的学习方式。重温之前看过的书籍，你会发现之前那些似懂非懂的内容，现在看来豁然开朗，不再晦涩难懂了。而且之前你觉得理解的内容，再经过一段时间工作和生活的沉淀后，通常也会有新的收获。
再实践：
在自省中再实.]]></description><category></category></item><item><title><![CDATA[ThreadLocal分析详解，这一篇就够了]]></title><link>https://blog.youkuaiyun.com/liujunpen/article/details/115514185</link><guid>https://blog.youkuaiyun.com/liujunpen/article/details/115514185</guid><author>liujunpen</author><pubDate>Thu, 08 Apr 2021 18:06:50 +0800</pubDate><description><![CDATA[先简单总结一下，等看完代码分析后，可以在回来看一下上面的图。每个线程中都持有一个ThreadLocalMap对象，ThreadLocalMap中又保存了ThreadLocal - value键值对。]]></description><category></category></item><item><title><![CDATA[一个简单的多功能自定义圆角ImageView]]></title><link>https://blog.youkuaiyun.com/liujunpen/article/details/114540598</link><guid>https://blog.youkuaiyun.com/liujunpen/article/details/114540598</guid><author>liujunpen</author><pubDate>Mon, 08 Mar 2021 18:36:56 +0800</pubDate><description><![CDATA[之前为了图方便和赶工期，所以直接使用早期的工具类去裁剪。后期的话有一些时间，所以做了一些优化，就自定义了一个圆角ImageView。其实大概思路都是清楚的，但是想看下网上有没有其他好的方便的，结果一查，跟我的思路基本一样，就是在onDrawable中做裁剪，但是代码一大推，也是醉了。后面看到一个挺有意思的思路，是通过clipPath实现的。

使用裁剪的代码：
//RoundedBitmapDrawable是基于glide的
public static Drawable bitmapToRound(Con.]]></description><category></category></item><item><title><![CDATA[Linux系统上的Breakpad编译和使用]]></title><link>https://blog.youkuaiyun.com/liujunpen/article/details/114320939</link><guid>https://blog.youkuaiyun.com/liujunpen/article/details/114320939</guid><author>liujunpen</author><pubDate>Wed, 03 Mar 2021 16:14:24 +0800</pubDate><description><![CDATA[下载源码

https://chromium.googlesource.com/breakpad/breakpad/+/master



下载依赖包

https://chromium.googlesource.com/linux-syscall-support/
PS：无该依赖包，会报错src/client/linux/crash_generation/crash_generation_client.cc:40:10: fatal error: third_party/lss/linux_sysca..]]></description><category></category></item><item><title><![CDATA[Android系统时间自动设置NTP服务报错]]></title><link>https://blog.youkuaiyun.com/liujunpen/article/details/114287727</link><guid>https://blog.youkuaiyun.com/liujunpen/article/details/114287727</guid><author>liujunpen</author><pubDate>Tue, 02 Mar 2021 18:02:54 +0800</pubDate><description><![CDATA[问题描述：
在日期和时间中开启自动设置，时间不变，并没有同步到网络时间。


问题查找：
开始以为是系统默认的ntp服务器有问题，查看后发现使用的是阿里云的NTP服务器ntp2.aliyun.com，我在设备内pin了一下，也是通的。
然后，查看打印日志，发现报了request time failed: Unable to resolve host "ntp2.aliyun.com" No address associated with hostname的错误，这个是因为通过域名获取地址时报的错。
通过..]]></description><category></category></item><item><title><![CDATA[处理MTK中DuraSpeed（快霸）引起的app被莫名其妙kill掉]]></title><link>https://blog.youkuaiyun.com/liujunpen/article/details/108358880</link><guid>https://blog.youkuaiyun.com/liujunpen/article/details/108358880</guid><author>liujunpen</author><pubDate>Wed, 02 Sep 2020 11:29:44 +0800</pubDate><description><![CDATA[一、问题描述
之前在MTK源码中，添加了的自定义的launcher后，发现其经常会被莫名其妙kill掉，根据错误日志找到如下描述：
DuraSpeed: Add com.my.test to the suppress list, the suppress list = [com.android.settings, com.android.calendar, com.my.launcher, com.my.test]

查了下资料，发现是因为MTK内置了一套自己的进程管理软DuraSpeed（快霸）。该软件会]]></description><category></category></item></channel></rss>