<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[qq_22966813的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/qq_22966813</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; qq_22966813]]></copyright><item><title><![CDATA[Android跟踪so库调用]]></title><link>https://blog.youkuaiyun.com/qq_22966813/article/details/147048298</link><guid>https://blog.youkuaiyun.com/qq_22966813/article/details/147048298</guid><author>qq_22966813</author><pubDate>Mon, 07 Apr 2025 17:09:02 +0800</pubDate><description><![CDATA[debug this with `export LD_DEBUG=1` and `setprop debug.ld.all dlopen,dlerror`.]]></description><category></category></item><item><title><![CDATA[retrace使用]]></title><link>https://blog.youkuaiyun.com/qq_22966813/article/details/144104761</link><guid>https://blog.youkuaiyun.com/qq_22966813/article/details/144104761</guid><author>qq_22966813</author><pubDate>Thu, 28 Nov 2024 10:34:15 +0800</pubDate><description><![CDATA[retrace使用。]]></description><category></category></item><item><title><![CDATA[Python QQ邮箱发送邮件]]></title><link>https://blog.youkuaiyun.com/qq_22966813/article/details/143414790</link><guid>https://blog.youkuaiyun.com/qq_22966813/article/details/143414790</guid><author>qq_22966813</author><pubDate>Thu, 31 Oct 2024 18:59:22 +0800</pubDate><description><![CDATA[python  qq发送邮件]]></description><category></category></item><item><title><![CDATA[File “/usr/lib/python2.7/pickle.py“, line 892, in load_proto raise ValueError, “unsupported pi]]></title><link>https://blog.youkuaiyun.com/qq_22966813/article/details/131924345</link><guid>https://blog.youkuaiyun.com/qq_22966813/article/details/131924345</guid><author>qq_22966813</author><pubDate>Tue, 25 Jul 2023 18:58:53 +0800</pubDate><description><![CDATA[我本地用python2.7拉取代码，后面由于需要切换到python3运行脚本，后面直接repo init。解决方法： rm -rf ~/.repopickle_.gitconfig。导致出现了 这个问题。]]></description><category></category></item><item><title><![CDATA[Input log]]></title><link>https://blog.youkuaiyun.com/qq_22966813/article/details/130720207</link><guid>https://blog.youkuaiyun.com/qq_22966813/article/details/130720207</guid><author>qq_22966813</author><pubDate>Wed, 17 May 2023 10:29:19 +0800</pubDate><description><![CDATA[执行这些命令后再复现问题，抓一遍log。手机进入桌面后继续执行命令。input相关打开log。]]></description><category></category></item><item><title><![CDATA[linux开机自动挂在盘符]]></title><link>https://blog.youkuaiyun.com/qq_22966813/article/details/127748086</link><guid>https://blog.youkuaiyun.com/qq_22966813/article/details/127748086</guid><author>qq_22966813</author><pubDate>Tue, 08 Nov 2022 11:56:23 +0800</pubDate><description><![CDATA[mount -a 可以查看自己写的挂载是否正确，一定要看，否则可能会影响下面正确的挂载。sudo blkid  # 获取磁盘的uuid和属性，用uuid来进行开机mount。sudo gedit /etc/fstab # 开机mount，模板是UUID=df -h 查看已经挂载上，说明配置没有问题，再重启机器。]]></description><category></category></item><item><title><![CDATA[app获取权限]]></title><link>https://blog.youkuaiyun.com/qq_22966813/article/details/127731371</link><guid>https://blog.youkuaiyun.com/qq_22966813/article/details/127731371</guid><author>qq_22966813</author><pubDate>Mon, 07 Nov 2022 15:01:11 +0800</pubDate><description><![CDATA[app获取权限]]></description><category></category></item><item><title><![CDATA[perfetto性能分析]]></title><link>https://blog.youkuaiyun.com/qq_22966813/article/details/127420677</link><guid>https://blog.youkuaiyun.com/qq_22966813/article/details/127420677</guid><author>qq_22966813</author><pubDate>Thu, 20 Oct 2022 09:58:29 +0800</pubDate><description><![CDATA[adb shell perfetto ]]></description><category></category></item><item><title><![CDATA[Linux查看CPU信息]]></title><link>https://blog.youkuaiyun.com/qq_22966813/article/details/127385130</link><guid>https://blog.youkuaiyun.com/qq_22966813/article/details/127385130</guid><author>qq_22966813</author><pubDate>Tue, 18 Oct 2022 11:35:41 +0800</pubDate><description><![CDATA[linux下怎么查看cpu核数_worthsen的博客-优快云博客_linux查看cpu核数]]></description><category></category></item><item><title><![CDATA[内部类与内存泄露]]></title><link>https://blog.youkuaiyun.com/qq_22966813/article/details/123072967</link><guid>https://blog.youkuaiyun.com/qq_22966813/article/details/123072967</guid><author>qq_22966813</author><pubDate>Tue, 22 Feb 2022 17:24:31 +0800</pubDate><description><![CDATA[1：为啥非静态内部类不能存在静态方法

非static的内部类,在外部类加载的时候,并不会加载它,所以它里面不能有静态变量或者静态方法。”

2：非静态内部类导致的内存泄露

非静态内部类持有外部类的引用，而静态内部类则不会。

参考Java内部类的实现原理与可能的内存泄漏_a5582ddff的博客-优快云博客_java内部类内存泄露

在使用java内部类的时候要注意可能引起的内存泄漏
代码如下






	package com.example;
	
	
	
	public class MyCla.]]></description><category></category></item><item><title><![CDATA[Android Q版本读取SDcard]]></title><link>https://blog.youkuaiyun.com/qq_22966813/article/details/122404096</link><guid>https://blog.youkuaiyun.com/qq_22966813/article/details/122404096</guid><author>qq_22966813</author><pubDate>Mon, 10 Jan 2022 09:51:44 +0800</pubDate><description><![CDATA[&lt;uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/&gt;
&lt;uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/&gt;

需要在application里面添加


android:requestLegacyExternalStorage="true"


private void getSdcardPr.]]></description><category></category></item><item><title><![CDATA[text selector timerpicker]]></title><link>https://blog.youkuaiyun.com/qq_22966813/article/details/122227239</link><guid>https://blog.youkuaiyun.com/qq_22966813/article/details/122227239</guid><author>qq_22966813</author><pubDate>Thu, 30 Dec 2021 00:06:32 +0800</pubDate><description><![CDATA[package com.jingchen.timerpicker;

import java.util.ArrayList;
import java.util.List;
import java.util.Timer;
import java.util.TimerTask;

import android.content.Context;
import android.graphics.Canvas;
import android.graphics.Paint;
import android.gr...]]></description><category></category></item><item><title><![CDATA[Android Studio 自制矢量图]]></title><link>https://blog.youkuaiyun.com/qq_22966813/article/details/122143401</link><guid>https://blog.youkuaiyun.com/qq_22966813/article/details/122143401</guid><author>qq_22966813</author><pubDate>Sat, 25 Dec 2021 14:42:57 +0800</pubDate><description><![CDATA[]]></description><category></category></item><item><title><![CDATA[Android studio Didn‘t find class “com.xx.MainActivity“ on path: DexPathList[[zip……]]></title><link>https://blog.youkuaiyun.com/qq_22966813/article/details/122097947</link><guid>https://blog.youkuaiyun.com/qq_22966813/article/details/122097947</guid><author>qq_22966813</author><pubDate>Thu, 23 Dec 2021 00:18:22 +0800</pubDate><description><![CDATA[由于没有使用MultDex，所以不是相关原因；

没有引入任何.so文件，所以不是相关原因；

Android Studio 3.5没有找到instant run设置；

删除.gradle和.idea文件夹，clean project没有效果；

代码在其他手机上运行正常，所以不是代码原因；

那么就只有gradle的原因了。

将JDK从android studio jre修改为 自己的 jdk，未解决；

最后的解决办法是：

defaultConfig {
  applicationId "co..]]></description><category></category></item><item><title><![CDATA[Android Q的事件分发机制]]></title><link>https://blog.youkuaiyun.com/qq_22966813/article/details/121502226</link><guid>https://blog.youkuaiyun.com/qq_22966813/article/details/121502226</guid><author>qq_22966813</author><pubDate>Wed, 24 Nov 2021 13:52:18 +0800</pubDate><description><![CDATA[事件分发的来龙去脉]]></description><category></category></item><item><title><![CDATA[宏定义在C++中的使用]]></title><link>https://blog.youkuaiyun.com/qq_22966813/article/details/121382609</link><guid>https://blog.youkuaiyun.com/qq_22966813/article/details/121382609</guid><author>qq_22966813</author><pubDate>Wed, 17 Nov 2021 17:04:25 +0800</pubDate><description><![CDATA[#define FUN(type, a , b) \
  public:                           \
  void SUM##a(type c)              \
  {                            \
    b##_ = c;               ...]]></description><category></category></item><item><title><![CDATA[android绘图canvas.clipRect()方法的作用]]></title><link>https://blog.youkuaiyun.com/qq_22966813/article/details/116169722</link><guid>https://blog.youkuaiyun.com/qq_22966813/article/details/116169722</guid><author>qq_22966813</author><pubDate>Mon, 26 Apr 2021 19:46:20 +0800</pubDate><description><![CDATA[该方法用于裁剪画布，也就是设置画布的显示区域
调用clipRect()方法后，只会显示被裁剪的区域，之外的区域将不会显示
该方法最后有一个参数Region.Op，表示与之前区域的区域间运算种类，如果没有这个参数，则默认为Region.Op.INTERSECT
这几个参数的意义为：

DIFFERENCE是第一次不同于第二次的部分显示出来
REPLACE是显示第二次的
REVERSE_DIFFERENCE 是第二次不同于第一次的部分显示
INTERSECT交集显示
UNION全部显示
XOR补集 就是全集的减]]></description><category></category></item><item><title><![CDATA[APP启动流程，AM的机制]]></title><link>https://blog.youkuaiyun.com/qq_22966813/article/details/110946655</link><guid>https://blog.youkuaiyun.com/qq_22966813/article/details/110946655</guid><author>qq_22966813</author><pubDate>Wed, 14 Apr 2021 13:57:36 +0800</pubDate><description><![CDATA[1：Launcher获取点击事件，由于Launcher在启动时，会通过PMS查询所有Androidmanifest中的Intent，所以点击图标，就会调用相应的APP，进入APP启动的入口StartActivity。

2：StartActivity-&gt;StartActivityForResult-&gt;mInstrumentation.exceStartActivity

备注：mInstrumentation是ActivityThread创建的，一个进程1个。

3：AMS.startActiv]]></description><category></category></item><item><title><![CDATA[PSCP使用 window和linux文件copy]]></title><link>https://blog.youkuaiyun.com/qq_22966813/article/details/115697006</link><guid>https://blog.youkuaiyun.com/qq_22966813/article/details/115697006</guid><author>qq_22966813</author><pubDate>Wed, 14 Apr 2021 13:56:49 +0800</pubDate><description><![CDATA[1：下载PSCP，附件。



2：PSCP不用安装可以直接使用，window cmd命令如下



pscp.exe -r XXXXXXX@IP:/home C:\Users\xxx\Desktop\scp



注：XXXXXXX 代表你linux的用户名。

前提是你在linux创建好了用户名和访问密码，



useradd --create-home -s /bin/bash XX



passwd XX(在出现的密码提示符中，给user指定登录密码)







3：命令...]]></description><category></category></item><item><title><![CDATA[Android  c++获取进程ID]]></title><link>https://blog.youkuaiyun.com/qq_22966813/article/details/115485245</link><guid>https://blog.youkuaiyun.com/qq_22966813/article/details/115485245</guid><author>qq_22966813</author><pubDate>Wed, 07 Apr 2021 14:39:19 +0800</pubDate><description><![CDATA[IPCThreadState::self()-&gt;getCallingPid();
]]></description><category></category></item></channel></rss>