<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[u014711665的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/u014711665</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; u014711665]]></copyright><item><title><![CDATA[Android Manifest权限清单]]></title><link>https://blog.youkuaiyun.com/u014711665/article/details/142391337</link><guid>https://blog.youkuaiyun.com/u014711665/article/details/142391337</guid><author>u014711665</author><pubDate>Fri, 20 Sep 2024 17:46:27 +0800</pubDate><description><![CDATA[Android权限部分可分为安装权限、运行时权限、特殊权限。
其中安装权限分普通权限和签名权限：普通权限安装后就有，无需重新授权；签名权限则需要系统签名才有的权限；
特殊权限则需要打开指定的系统页面进行授权，当然使用AppOpsManager也能打到静默授权的功效。
下面就列举一下我们需要额外处理的一些权限：
##特殊权限
除了第一个以外，其他也都是签名权限。如果你有系统签名，签名权限的会自动授权。
    &lt;uses-permission
        android:name="android.]]></description><category></category></item><item><title><![CDATA[汉字占用两字节原因]]></title><link>https://blog.youkuaiyun.com/u014711665/article/details/132445557</link><guid>https://blog.youkuaiyun.com/u014711665/article/details/132445557</guid><author>u014711665</author><pubDate>Wed, 23 Aug 2023 10:18:14 +0800</pubDate><description><![CDATA[后面又出现了大一统局面「Unicode」 字符集,但英文字符占用空间的大小将会是 ASCII 编码下大小的 2 倍，非常浪费内存空间.就出现了UTF-8,UTF-15,UTF-32等编码方法.大家感兴趣可以自行补充.「GBK」字符集是「GB2312」字符集的扩展,共收录了 21886 个汉字.在 GBK 编码方案中，ASCII 字符使用一个字节表示，汉字使用两个字节表示.「ASCII 码」是最早出现的字符集，它使用 7 位二进制数（即一个字节的低 7 位）表示一个字符，最多能够表示 128 个不同的字符.]]></description><category></category></item><item><title><![CDATA[LoudnessEnhancer音效增加自动关闭？]]></title><link>https://blog.youkuaiyun.com/u014711665/article/details/130881479</link><guid>https://blog.youkuaiyun.com/u014711665/article/details/130881479</guid><author>u014711665</author><pubDate>Fri, 26 May 2023 11:05:31 +0800</pubDate><description><![CDATA[不出所料，搜索解决不了问题。然后根据日志，用小小的铲子在大大的源码里面挖呀挖呀挖，挖不动，只挖了大概位置，然后猜测应该得释放一下吧？没明白其中奥义，但我明白了资源申请了记得释放的道理！多欣赏了一会发现声音变小了，经过排查日志（Android10）发现耳朵没毛病。乍一看没毛病，测试下效果也不错。以为万事大吉，却不料被摆了一道！]]></description><category></category></item><item><title><![CDATA[unity 没有Generate all .csproj files?]]></title><link>https://blog.youkuaiyun.com/u014711665/article/details/129545075</link><guid>https://blog.youkuaiyun.com/u014711665/article/details/129545075</guid><author>u014711665</author><pubDate>Wed, 15 Mar 2023 09:27:14 +0800</pubDate><description><![CDATA[网上很多关于这个问题,有人解答的,有的说正常了,有的仍没有解决,而我就是后者.最后才发现还是自己对工具的不熟悉!!!
先看一下官方的说明

明明说明中有,偏偏自己的没有,这就是最害怕的事情了

乍一看,就是没有.后来

指定了External Script Editor为VSCode后就出来了[泪奔][泪奔][泪奔]

不说了,先emo一会…


]]></description><category></category></item><item><title><![CDATA[android适配ipv6，请求慢？]]></title><link>https://blog.youkuaiyun.com/u014711665/article/details/129240814</link><guid>https://blog.youkuaiyun.com/u014711665/article/details/129240814</guid><author>u014711665</author><pubDate>Mon, 27 Feb 2023 14:57:00 +0800</pubDate><description><![CDATA[华为手机,设置->移动网络->移动数据->接入点名称(APN)->新建一个APN,配置中的APN协议及APN漫游协议设置为仅ipv4或ipv6.最后排查运维申请了ipv6的地址,但没有申请ipv6的网关,运维在测试的时候只验证了服务器的ipv6访问通畅,却没有测试外部网络访问是否通畅。我们现在的问题是在解析到ipv6的ip时会出现请求巨慢.使用控制变量法,分别测试了仅ipv4协议及仅ipv6协议,怎么做?再次访问接口,仅ipv4的配置打印的只有ipv4的ip,访问速度正常!]]></description><category></category></item><item><title><![CDATA[屏幕适配小结]]></title><link>https://blog.youkuaiyun.com/u014711665/article/details/123995425</link><guid>https://blog.youkuaiyun.com/u014711665/article/details/123995425</guid><author>u014711665</author><pubDate>Wed, 06 Apr 2022 17:47:12 +0800</pubDate><description><![CDATA[先转载一篇文章对资源文件夹有一个基本结构了解：https://blog.youkuaiyun.com/yljme/article/details/40071593
设备A的屏幕信息如下（不包括导航栏高度）

设备B的屏幕信息如下（不包括导航栏高度）

项目资源文件夹如下

分析：
因为是横屏，所以是value-land；
因为设备A的densityDpi为240，所以会读取value-land-hdpi;
因为设备B的densityDpi为320，所以会读取value-land-xhdpi;
因为设备A的height为]]></description><category></category></item><item><title><![CDATA[Android另辟蹊径开机自启动方案]]></title><link>https://blog.youkuaiyun.com/u014711665/article/details/123273038</link><guid>https://blog.youkuaiyun.com/u014711665/article/details/123273038</guid><author>u014711665</author><pubDate>Fri, 04 Mar 2022 11:39:20 +0800</pubDate><description><![CDATA[当大家看到这篇文章的时候，应该已经看到过很多关于开机自启动的文章，大概可以归纳为


开机广播方案、产商定制的自启动功能方案


如文章标题，这篇文章会提到一种新的方案：


无障碍开机自启动


说到这里，大家应该也豁然开朗了，文章其实也该结束了。但是介于无障碍服务属于一个特殊的系统服务，我觉得有必要再多讲一点关于其授权的方法，毕竟网络上已经有很多文章教我们从0到1开启一个无障碍服务，但很少讲到如何授权。

接下来，我会谈到无障碍服务的几种授权方案：（主要针对root或系统权限）

1.普通应用跳转到系统]]></description><category></category></item><item><title><![CDATA[华为开发者选项锁屏已被管理员、加密政策或凭据存储禁用]]></title><link>https://blog.youkuaiyun.com/u014711665/article/details/121114779</link><guid>https://blog.youkuaiyun.com/u014711665/article/details/121114779</guid><author>u014711665</author><pubDate>Wed, 03 Nov 2021 10:57:06 +0800</pubDate><description><![CDATA[先说场景：
采购了一批华为的pad(android 7.0.0),每次开机都有锁屏壁纸，所以可以在开发者选项中的锁屏选项中关闭该功能。但部分设备的该选项是灰色的无法操作（具体原因不明），根据网络上说的清凭证，设密码都无效。所以花了些时间研究，记录一下思路。
前提是设备root了或者有系统权限，以下是设备root的情况处理：
1.首先我对比了其他的设备，在开发者选项中未看到【锁屏】选项，以为这是华为自己定制的功能，由于没有源码。所以反编译了Settings.apk，其实这一步走了弯路，但还是记录一下，以下是我]]></description><category></category></item><item><title><![CDATA[代码禁用自己集成的腾讯x5内核]]></title><link>https://blog.youkuaiyun.com/u014711665/article/details/120266521</link><guid>https://blog.youkuaiyun.com/u014711665/article/details/120266521</guid><author>u014711665</author><pubDate>Mon, 13 Sep 2021 14:42:05 +0800</pubDate><description><![CDATA[腾讯x5官方文档：

https://x5.tencent.com/docs/index.html

其中未说明如何禁用x5内核，网络上有很多关于禁用的文章，但都是禁用微信的x5内核。
于是通过文档上的调试模式，顺藤摸瓜，标准的初始x5组件：

会在data/data/包名/下生成如下目录及文件：

其中debug.conf文件就是关键。（以下是我禁用后的截图）

于是在初始化后就增加了如下代码：（我想在android6.0及以上禁用x5内核，原因我就不说明了）

完工。不用重启应用就可以达到目的，可以使用]]></description><category></category></item><item><title><![CDATA[对release版本apk进行调试以及https抓包]]></title><link>https://blog.youkuaiyun.com/u014711665/article/details/120086647</link><guid>https://blog.youkuaiyun.com/u014711665/article/details/120086647</guid><author>u014711665</author><pubDate>Fri, 03 Sep 2021 17:37:04 +0800</pubDate><description><![CDATA[这里不再分析其他情况，仅针对release版本处理；
应用debug步骤：参考链接
1.准备root的设备，安装Magisk，此步骤省略。。。。
2.使用magisk指令修改：
adb shell
su
magisk resetprop ro.debuggable 1
stop;start;

应用抓包步骤：
1.准备charles抓包工具,走抓包流程，在设置上安装证书，https乱码参考链接
2.Magisk安装Move Certificates模块

...]]></description><category></category></item><item><title><![CDATA[泛型实际类型获取与生成]]></title><link>https://blog.youkuaiyun.com/u014711665/article/details/119317915</link><guid>https://blog.youkuaiyun.com/u014711665/article/details/119317915</guid><author>u014711665</author><pubDate>Mon, 02 Aug 2021 09:48:15 +0800</pubDate><description><![CDATA[泛型类型获取
文章摘自https://blog.youkuaiyun.com/qq_27070117/article/details/103069308
clazz.getTypeParameters()
如上代码，我给类TV声明了两个泛型V和T，而通过getTypeParameters()获取到的数组正代表类头部声明的泛型，我们可以通过getName()方法获取到声明时定义的字符串（这个例子中就是 V和T）
clazz.getGenericSuperclass()

clazz.getGenericSuperclas]]></description><category></category></item><item><title><![CDATA[异步任务工具]]></title><link>https://blog.youkuaiyun.com/u014711665/article/details/119300849</link><guid>https://blog.youkuaiyun.com/u014711665/article/details/119300849</guid><author>u014711665</author><pubDate>Sun, 01 Aug 2021 17:33:25 +0800</pubDate><description><![CDATA[组件说明
按组执行的异步任务
导入依赖
Step 1. 添加JitPack仓库到根目录build.gradle文件
allprojects {
		repositories {
			...
			maven { url 'https://jitpack.io' }
		}
	}

Step 2. 在module添加依赖
dependencies {
	        implementation 'com.github.Doonkey:AsyncTool:2.0'
	}

功能描述

组与组串行，组内遵循]]></description><category></category></item><item><title><![CDATA[Android基于闹钟的定时任务组件]]></title><link>https://blog.youkuaiyun.com/u014711665/article/details/119243217</link><guid>https://blog.youkuaiyun.com/u014711665/article/details/119243217</guid><author>u014711665</author><pubDate>Fri, 30 Jul 2021 11:39:07 +0800</pubDate><description><![CDATA[计划任务组件
根据系统闹钟的定时任务，按任务的执行时间顺序依次执行，可动态添加及取消任务。
不支持任务时间片重叠的场景

基于开源项目修改，感谢作者:https://github.com/BolexLiu/TimeTask

使用说明
导入依赖
Step 1. 添加JitPack仓库到根目录build.gradle文件
allprojects {
repositories {
...
maven { url '[https://jitpack.io](https://jitpack.io)' }
}
}

]]></description><category></category></item><item><title><![CDATA[androidRoot刷机流程及问题记录]]></title><link>https://blog.youkuaiyun.com/u014711665/article/details/118415946</link><guid>https://blog.youkuaiyun.com/u014711665/article/details/118415946</guid><author>u014711665</author><pubDate>Fri, 02 Jul 2021 15:37:35 +0800</pubDate><description><![CDATA[目录

root流程

问题记录

文件下载地址

root流程

打开开发者选项，允许调试（具体打开方式不逼逼了）
	打开oem解锁选项（遇到问题见下放）
	adb reboot bootloader进入fastboot模式（adb,fastboot工具下载也不逼逼了，见下方）
	fastboot oem unlock 或者fastboot flashing unlock解锁设备，因为前者指令有些执行错误
	fastboot reboot或者手动重启设备
	再次进入到fastboot模式，fastboot]]></description><category></category></item><item><title><![CDATA[Root设备提取system.img]]></title><link>https://blog.youkuaiyun.com/u014711665/article/details/118414579</link><guid>https://blog.youkuaiyun.com/u014711665/article/details/118414579</guid><author>u014711665</author><pubDate>Fri, 02 Jul 2021 14:35:57 +0800</pubDate><description><![CDATA[先确认system分区所对应的路径（部分设备中的bootdevice路径可能不同，自己cd确认准确路径）


/dev/block/platform/bootdevice/by-name

列表如下，找到system分区及其他分区所对应的路径




adb shell 
su 
dd if=/dev/block/mmcblk0p37 of=/sdcard/system.img

同理可以提取出boot.img以及recovery.img等镜像文件

附上一篇fastboot刷机文章：https://bl.]]></description><category></category></item><item><title><![CDATA[fastboot找不到设备？一直wait for device?]]></title><link>https://blog.youkuaiyun.com/u014711665/article/details/118155824</link><guid>https://blog.youkuaiyun.com/u014711665/article/details/118155824</guid><author>u014711665</author><pubDate>Wed, 23 Jun 2021 16:23:10 +0800</pubDate><description><![CDATA[有时adb reboot bootloader进入到fastboot模式就找不到设备了，有可能是硬件类型选错了。当然这只是其中的一种原因，供大家参考：

1.打开设备和打印机，右键删除设备

2.打开设备管理器，在其他设备中找到设备并更新驱动程序



一步步继续操作即可
...]]></description><category></category></item><item><title><![CDATA[Android应用内无需权限悬浮窗]]></title><link>https://blog.youkuaiyun.com/u014711665/article/details/116931603</link><guid>https://blog.youkuaiyun.com/u014711665/article/details/116931603</guid><author>u014711665</author><pubDate>Mon, 17 May 2021 14:28:57 +0800</pubDate><description><![CDATA[Android悬浮窗的开源库有很多，之前一直使用的FloatWindow，也非常好用！

这个库支持应用内以及应用外悬浮窗，只是在高版本中需要申请悬浮窗权限，有时并不需要应用外悬浮窗，但在高版本仍旧需要申请权限，就有点不对劲了！

所以参考了其他的开源项目，自己又整理了一个简单好用的开源悬浮项目，欢迎大家指正纠错！

项目地址先贴上：https://github.com/Doonkey/DkFloatingView

下面就大概说明一下这个项目



应用内悬浮窗，低侵入性，无权限申请，简单配置，全局可用，]]></description><category></category></item><item><title><![CDATA[android View扩大触摸选区]]></title><link>https://blog.youkuaiyun.com/u014711665/article/details/116758307</link><guid>https://blog.youkuaiyun.com/u014711665/article/details/116758307</guid><author>u014711665</author><pubDate>Fri, 14 May 2021 11:14:28 +0800</pubDate><description><![CDATA[viewGroup.post(() -> {
    Rect rect = new Rect();
    view.getHitRect(rect);
    rect.left -= 30;
    rect.top -= 30;
    rect.right += 30;
    rect.bottom += 30;
    TouchDelegate touchDelegate = new TouchDelegate(rect, view);
    viewGroup.setTouchDeleg]]></description><category></category></item><item><title><![CDATA[小米usb当前设备已被临时限制3-2]]></title><link>https://blog.youkuaiyun.com/u014711665/article/details/115196614</link><guid>https://blog.youkuaiyun.com/u014711665/article/details/115196614</guid><author>u014711665</author><pubDate>Thu, 25 Mar 2021 09:39:10 +0800</pubDate><description><![CDATA[网络上都是换卡换账号操作,如果没用则尝试下下面的链接,前提是root,百试百灵,修改后重启手机或者强制重启com.miui.securitycenter应用

转载https://blog.youkuaiyun.com/z920981023/article/details/110207265
]]></description><category></category></item><item><title><![CDATA[TextView处理滑动冲突复盘]]></title><link>https://blog.youkuaiyun.com/u014711665/article/details/115110432</link><guid>https://blog.youkuaiyun.com/u014711665/article/details/115110432</guid><author>u014711665</author><pubDate>Tue, 23 Mar 2021 10:16:38 +0800</pubDate><description><![CDATA[平常在ViewGroup中放一个textView组件,无可避免会出现textView内容过多而需要解决滑动冲突的问题.

大多数的做法就是再嵌套一个ScrollView来处理滑动冲突,而之所以用ScrollView的考虑无非就是处理是否滑动到边界,这么想想感觉不值得!

网上有很多介绍如何让TextView加载多内容时可滑动的文章,但是很少有解决其滑动冲突的文章.

今天就不说怎么支持滑动了,因为只是加一句


textView.setMovementMethod(ScrollingMovementMeth]]></description><category></category></item></channel></rss>