<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[Cyanogen_dom的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/Cyanogen_dom</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; Cyanogen_dom]]></copyright><item><title><![CDATA[Android Hook 剪切板相关方法]]></title><link>https://blog.youkuaiyun.com/Cyanogen_dom/article/details/131902115</link><guid>https://blog.youkuaiyun.com/Cyanogen_dom/article/details/131902115</guid><author>Cyanogen_dom</author><pubDate>Mon, 24 Jul 2023 20:06:57 +0800</pubDate><description><![CDATA[因为SYSTEM_SERVICE_FETCHERS字段是个static字段，所以整个app进程只会有一个且只会执行一次初始化的操作，所以无论我们传入的context是Application的还是Activity，拿到的都是同一个fetcher实例，那么问题只能出在fetcher.getService(ctx)方法里面。但是一些第三方的jar包里面也有在调用的话，我们就无能为力了，而且整个项目的所有调用处都一个一个去加判断的话，就会显得很麻烦，这里用Hook方法完成拦截方法调用+判断。]]></description><category></category></item><item><title><![CDATA[JNA 官方下载地址]]></title><link>https://blog.youkuaiyun.com/Cyanogen_dom/article/details/113036179</link><guid>https://blog.youkuaiyun.com/Cyanogen_dom/article/details/113036179</guid><author>Cyanogen_dom</author><pubDate>Sat, 23 Jan 2021 11:53:23 +0800</pubDate><description><![CDATA[https://repo1.maven.org/maven2/net/java/dev/jna/
]]></description><category></category></item><item><title><![CDATA[android项目中使用kotlin和java混合编程]]></title><link>https://blog.youkuaiyun.com/Cyanogen_dom/article/details/107876869</link><guid>https://blog.youkuaiyun.com/Cyanogen_dom/article/details/107876869</guid><author>Cyanogen_dom</author><pubDate>Sat, 08 Aug 2020 11:19:50 +0800</pubDate><description><![CDATA[1. 先在插件商店安装kotlin插件





2. 在想要使用kotlin的module的build.gradle文件根目录里面添加


apply plugin: 'kotlin-android'
apply plugin: 'kotlin-android-extensions'

如图所示





3. 在项目的build.gradle文件里面添加 ， 大功告成




ext.kotlin_version="1.3.72"     //这里改成你的kotlin版本号


classpa...]]></description><category></category></item><item><title><![CDATA[谷歌的一个material控件 - chipgroup，一步实现flowlayout]]></title><link>https://blog.youkuaiyun.com/Cyanogen_dom/article/details/107089219</link><guid>https://blog.youkuaiyun.com/Cyanogen_dom/article/details/107089219</guid><author>Cyanogen_dom</author><pubDate>Thu, 02 Jul 2020 17:29:42 +0800</pubDate><description><![CDATA[添加依赖 :


implementation 'com.google.android.material:material:1.3.0-alpha01'



注意！这个控件必须在activity的属性里面指定theme为 :


Theme.MaterialComponents 或者它的子类

布局：





每个chip的布局





然后就大功告成了，chipgroup会根据chip对他们排列



具体的看 :谷歌文档
...]]></description><category></category></item><item><title><![CDATA[关于inflate出来的view的margin属性失效问题]]></title><link>https://blog.youkuaiyun.com/Cyanogen_dom/article/details/106172199</link><guid>https://blog.youkuaiyun.com/Cyanogen_dom/article/details/106172199</guid><author>Cyanogen_dom</author><pubDate>Sun, 17 May 2020 11:57:40 +0800</pubDate><description><![CDATA[在inflate方法的源码可以看到



也就是说 , 如果inflate方法中的root参数为null时 , 不会生成layoutparams , 所以margin会失效 , 所以在inflate方法把root参数绑定成你的parent即可
]]></description><category></category></item><item><title><![CDATA[分享一个自定义view-圆形进度条,中间显示进度]]></title><link>https://blog.youkuaiyun.com/Cyanogen_dom/article/details/106149120</link><guid>https://blog.youkuaiyun.com/Cyanogen_dom/article/details/106149120</guid><author>Cyanogen_dom</author><pubDate>Fri, 15 May 2020 20:48:48 +0800</pubDate><description><![CDATA[public class SportsView extends View {

    /*
        原理是画一大一小圆,小圆填充外部边距颜色,最中间画text
     */



    private int progress = 0;   //中间的进度数
    private int mCircleWidth = 20;   //圆环的宽度
    private int mCircleColor = Color.BLUE;     //圆环的默认颜色
    private...]]></description><category></category></item><item><title><![CDATA[随手笔记 - 介绍view动画]]></title><link>https://blog.youkuaiyun.com/Cyanogen_dom/article/details/106050918</link><guid>https://blog.youkuaiyun.com/Cyanogen_dom/article/details/106050918</guid><author>Cyanogen_dom</author><pubDate>Mon, 11 May 2020 12:04:03 +0800</pubDate><description><![CDATA[转载自 :https://www.jianshu.com/p/16e0d4e92bb2
]]></description><category></category></item><item><title><![CDATA[随手笔记 - activity的切换效果]]></title><link>https://blog.youkuaiyun.com/Cyanogen_dom/article/details/106050818</link><guid>https://blog.youkuaiyun.com/Cyanogen_dom/article/details/106050818</guid><author>Cyanogen_dom</author><pubDate>Mon, 11 May 2020 11:40:31 +0800</pubDate><description><![CDATA[更改activity的切换效果

 enterAnim : 启动activity时的动画

 exitAnim : 暂停activity时的动画

 注意 , overridependingTransition方法必须在startActivity或者finish后面 , 否则不起效果


Intent intent = new Intent(this,SecondActivity.class);
startActivity(intent);
//这是启动的切换效果
overridePendingTr...]]></description><category></category></item><item><title><![CDATA[Android获得app的一些基本信息(包名,图标,版本号之类)]]></title><link>https://blog.youkuaiyun.com/Cyanogen_dom/article/details/105410416</link><guid>https://blog.youkuaiyun.com/Cyanogen_dom/article/details/105410416</guid><author>Cyanogen_dom</author><pubDate>Thu, 09 Apr 2020 14:50:53 +0800</pubDate><description><![CDATA[PackageManager pm = getPackageManager();  // 自带的,直接用就是

/*
 * 传入的flag不同,得到的list不一样,例如传入PackageManager.GET_ACTIVITIES可得到activity相关信息, 
 * 具体可查看源码,类型为PackageInfo
 */
List&lt;PackageInfo&gt; packageInfo...]]></description><category></category></item><item><title><![CDATA[Android常见的内存泄露]]></title><link>https://blog.youkuaiyun.com/Cyanogen_dom/article/details/103532588</link><guid>https://blog.youkuaiyun.com/Cyanogen_dom/article/details/103532588</guid><author>Cyanogen_dom</author><pubDate>Fri, 13 Dec 2019 19:55:51 +0800</pubDate><description><![CDATA[转载 ：https://www.cicada-shell.com/android-nei-cun-xie-lou/








]]></description><category></category></item><item><title><![CDATA[Android禁止屏幕旋转后创建Activity实例]]></title><link>https://blog.youkuaiyun.com/Cyanogen_dom/article/details/103364510</link><guid>https://blog.youkuaiyun.com/Cyanogen_dom/article/details/103364510</guid><author>Cyanogen_dom</author><pubDate>Tue, 03 Dec 2019 12:06:23 +0800</pubDate><description><![CDATA[我们都知道 , 默认的activity是在屏幕旋转后会重新创建activity的 , 那么有没有办法可以不重新创建呢? 有!!!



在manifest文件的activity里面指定属性

android:configChanges="orientation|screenSize" 就OK了 (其中screenSize选项参数看下面介绍 , API13之后都要加这个参数)



当然 , ...]]></description><category></category></item><item><title><![CDATA[和风天气API接口获取天气数据 android端]]></title><link>https://blog.youkuaiyun.com/Cyanogen_dom/article/details/103280305</link><guid>https://blog.youkuaiyun.com/Cyanogen_dom/article/details/103280305</guid><author>Cyanogen_dom</author><pubDate>Wed, 27 Nov 2019 17:52:46 +0800</pubDate><description><![CDATA[1. 在和风天气官网注册账号 , 然后申请一个key , 注意类型一定要是android sdk , 这个key只能在指定包名里面的SDK使用 , 用浏览器会返回错误 !!!





2. 下载和风天气的SDKhttps://dev.heweather.com/docs/sdk/android, 然后将SDK导入到你的项目工程里面

3. 使用方法 :

   获得你的账号的us...]]></description><category></category></item><item><title><![CDATA[android studio connection reset by peer 问题的解决方法]]></title><link>https://blog.youkuaiyun.com/Cyanogen_dom/article/details/103096066</link><guid>https://blog.youkuaiyun.com/Cyanogen_dom/article/details/103096066</guid><author>Cyanogen_dom</author><pubDate>Sat, 16 Nov 2019 10:46:44 +0800</pubDate><description><![CDATA[出现这种问题有可能是adb的默认端口(5037)被占用 , 无法启用adb-server ,所以只要找到是哪个进程占用了这个端口 , kill 掉即可

在cmd中输入命令 : netstat -aon|findstr "5037"





发现了这个进程在占用5037端口号 , PID为15044

然后输入命令 : tasklist|findstr "15044"找到该进程名字



...]]></description><category></category></item><item><title><![CDATA[解决AMD处理器 android studio 无法启动模拟器的问题]]></title><link>https://blog.youkuaiyun.com/Cyanogen_dom/article/details/102860533</link><guid>https://blog.youkuaiyun.com/Cyanogen_dom/article/details/102860533</guid><author>Cyanogen_dom</author><pubDate>Fri, 01 Nov 2019 16:43:05 +0800</pubDate><description><![CDATA[用这位大佬的方法可以解决大部分问题 :https://blog.youkuaiyun.com/ichenwin/article/details/81039816



但是因为我用了VMware , 所以把hypervisor给禁用了 , 折腾了一下午都没弄好 , 最好想了好久才想起我之前曾经禁用了它 , 所以再次打开它即可(光是在windows features开启还不够 , 还要确保hyperviso...]]></description><category></category></item><item><title><![CDATA[litepal 3.0 配置教程]]></title><link>https://blog.youkuaiyun.com/Cyanogen_dom/article/details/102844759</link><guid>https://blog.youkuaiyun.com/Cyanogen_dom/article/details/102844759</guid><author>Cyanogen_dom</author><pubDate>Thu, 31 Oct 2019 20:15:31 +0800</pubDate><description><![CDATA[1. 在官网下载最新的src.jar包

2. 在项目中导入jar包



3. 注意是在moudul的build.gradle里面添加依赖 , 不是在project里面的build.gradle里面添加 , 当时我就在这里卡了好久....

java 就加


dependencies {
    implementation 'org.litepal.android:java:3.0...]]></description><category></category></item><item><title><![CDATA[解决linux下chrome标题栏乱码问题]]></title><link>https://blog.youkuaiyun.com/Cyanogen_dom/article/details/102337705</link><guid>https://blog.youkuaiyun.com/Cyanogen_dom/article/details/102337705</guid><author>Cyanogen_dom</author><pubDate>Tue, 08 Oct 2019 12:47:10 +0800</pubDate><description><![CDATA[1. 准备一个中文字体 : 比如这个 : YaHei Consolas Hybrid 下载链接:https://pan.baidu.com/s/1S3vQcH00iG9U_xR8IMgcig

2. 安装该字体

3. 打开etc/fonts/conf.avail/49-sansserif.conf , 修改倒数第四行的sans-serif为你的字体名 ,我这里是YaHei\ Consolas\ ...]]></description><category></category></item><item><title><![CDATA[找出链表中是否存在循环链表以及开始位置]]></title><link>https://blog.youkuaiyun.com/Cyanogen_dom/article/details/100632077</link><guid>https://blog.youkuaiyun.com/Cyanogen_dom/article/details/100632077</guid><author>Cyanogen_dom</author><pubDate>Sun, 08 Sep 2019 17:24:31 +0800</pubDate><description><![CDATA[基本思路是 : 设置两个前后指针 , 前指针每次前进2 , 后指针每次前进1 , 如果存在一个环 , 必然会在某个时刻前指针追上后指针 , 如果不存在环 , 则前指针碰到末尾就直接结束了(到这里是检测是否存在一个环)




        ListNode fast,slow;
        fast = slow = head;
        
        while(fast !=...]]></description><category></category></item><item><title><![CDATA[Android Studio 超简单的连接第三方模拟器]]></title><link>https://blog.youkuaiyun.com/Cyanogen_dom/article/details/100545460</link><guid>https://blog.youkuaiyun.com/Cyanogen_dom/article/details/100545460</guid><author>Cyanogen_dom</author><pubDate>Wed, 04 Sep 2019 19:27:12 +0800</pubDate><description><![CDATA[看见网上好多教程都是同一个人写的 , 错误都一模一样 ,到处复制.........自己摸索了半天才弄好了



1. 将你的adb.exe文件路径放到系统变量里面(不放也可以 , 但是每次连接都要手动cd到adb.exe路径下比较麻烦...)

 

  这里因为我用的adb.exe是刷机用的adb , 所以我用这个路径 , 自己的自行替换

  右键 "此电脑" - "属性" -...]]></description><category></category></item><item><title><![CDATA[java 使用Compartator接口实现自定义排序]]></title><link>https://blog.youkuaiyun.com/Cyanogen_dom/article/details/94401764</link><guid>https://blog.youkuaiyun.com/Cyanogen_dom/article/details/94401764</guid><author>Cyanogen_dom</author><pubDate>Mon, 01 Jul 2019 18:14:57 +0800</pubDate><description><![CDATA[背景 :

Comparator接口可以实现自定义排序，实现Comparator接口时，要重写compare方法：
int compare(Object o1, Object o2) 返回一个基本类型的整型
如果要按照升序排序,则o1 小于o2，返回-1（负数），相等返回0，01大于02返回1（正数）
如果要按照降序排序,则o1 小于o2，返回1（正数），相等返回0，01大于02返回-1（负...]]></description><category></category></item><item><title><![CDATA[android studio安装教程]]></title><link>https://blog.youkuaiyun.com/Cyanogen_dom/article/details/93534391</link><guid>https://blog.youkuaiyun.com/Cyanogen_dom/article/details/93534391</guid><author>Cyanogen_dom</author><pubDate>Mon, 24 Jun 2019 22:49:03 +0800</pubDate><description><![CDATA[1. 去官网下载android studiohttps://developer.android.com/studio

2. 如果是windows直接打开exe运行 , linux的话先用命令解压 , 比如说解压到android-studio目录 , 那么在android-stduio/bin/下面有一个studio.sh 运行该脚本即可开始安装 , 下次打开运行也是运行这个脚本

下面是图文安...]]></description><category></category></item></channel></rss>