<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[Makenna's World]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/ch_kexin</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; ch_kexin]]></copyright><item><title><![CDATA[Android kotlin integer-array 存放图片资源ID]]></title><link>https://blog.youkuaiyun.com/ch_kexin/article/details/143702822</link><guid>https://blog.youkuaiyun.com/ch_kexin/article/details/143702822</guid><author>ch_kexin</author><pubDate>Tue, 12 Nov 2024 10:16:03 +0800</pubDate><description><![CDATA[在Android开发中，我们可以使用Kotlin的数组来存储图片资源ID。以下是一个简单的例子，演示如何创建一个整型数组来存储图片资源ID，并在后续使用这些资源ID。对象，该对象包含了所有在XML中定义的资源ID。然后，我们遍历这个数组，将每个资源ID添加到一个整型数组中，最后释放掉。随后，你可以使用这个数组中的资源ID来加载图片，例如设置到。这段代码首先获取了一个。]]></description><category></category></item><item><title><![CDATA[Android 自定义背景渐变色]]></title><link>https://blog.youkuaiyun.com/ch_kexin/article/details/143359690</link><guid>https://blog.youkuaiyun.com/ch_kexin/article/details/143359690</guid><author>ch_kexin</author><pubDate>Wed, 30 Oct 2024 11:07:18 +0800</pubDate><description><![CDATA[在上述代码中，我们通过setOrientation方法设置了渐变方向为从左到右。在上述代码中，我们设置了四种颜色进行渐变，即从红色到黄色再到绿色最后到蓝色。上述示例中我们只是使用了两种颜色进行渐变，而实际上，我们可以使用更多的颜色来实现更丰富的渐变效果。除了基本的渐变色效果，我们还可以实现一些高级的渐变效果，比如圆角渐变、渐变边框等。GradientDrawable.Orientation.TL_BR：从左上到右下。GradientDrawable.Orientation.BL_TR：从左下到右上。]]></description><category></category></item><item><title><![CDATA[Android开发 GradientDrawable详解]]></title><link>https://blog.youkuaiyun.com/ch_kexin/article/details/143359181</link><guid>https://blog.youkuaiyun.com/ch_kexin/article/details/143359181</guid><author>ch_kexin</author><pubDate>Wed, 30 Oct 2024 11:01:26 +0800</pubDate><description><![CDATA[GradientDrawable 支持渐变色的Drawable，与shapeDrawable在画型上是类似的，多了支持渐变色。代码上的GradientDrawable比在xml里的shape下gradient属性强大的多，因为shape下gradient属性只支持三色阶渐变，而GradientDrawable可以有更多的色阶渐变。GradientDrawable在Android中便是shape标签的代码实现，利用GradientDrawable也可以创建出各种形状。]]></description><category></category></item><item><title><![CDATA[安卓surfaceview的使用方式]]></title><link>https://blog.youkuaiyun.com/ch_kexin/article/details/138578779</link><guid>https://blog.youkuaiyun.com/ch_kexin/article/details/138578779</guid><author>ch_kexin</author><pubDate>Wed, 08 May 2024 17:28:07 +0800</pubDate><description><![CDATA[surfaceview内部机制和外部层次结构在安卓开发中，我们经常会遇到一些需要高性能、高帧率、高画质的应用场景，例如视频播放、游戏开发、相机预览等。这些场景中，我们需要直接操作图像数据，并且实时地显示到屏幕上。view组件是在主线程中进行绘制的，如果绘制过程耗时过长或者频繁刷新，可能会导致主线程阻塞，影响用户交互和界面响应。view组件在绘制时没有使用双缓冲机制，也就是说每次绘制都是直接在屏幕上进行的，这可能会导致绘制过程中出现闪烁或者撕裂的现象。]]></description><category></category></item><item><title><![CDATA[Android适配平板屏幕尺寸]]></title><link>https://blog.youkuaiyun.com/ch_kexin/article/details/137598723</link><guid>https://blog.youkuaiyun.com/ch_kexin/article/details/137598723</guid><author>ch_kexin</author><pubDate>Wed, 10 Apr 2024 16:04:57 +0800</pubDate><description><![CDATA[人为判断方法:大于6英寸的就是平板。小于6英寸的都是手机平板尺寸： 6英寸、7英寸、10英寸、14英寸…Android系统支持多配置资源文件，我们可以追加新的资源目录到你的Android项目中。命名规范： 资源名字-限制符layout/drawble文件夹     说明layout     默认中等屏幕layout-small     小屏幕layout-large     大屏幕layout-xlarge     特大屏幕layout-land     横屏。]]></description><category></category></item><item><title><![CDATA[TextView 中实现打印机效果，即字符串逐字显示，并且可以自动换行]]></title><link>https://blog.youkuaiyun.com/ch_kexin/article/details/136736154</link><guid>https://blog.youkuaiyun.com/ch_kexin/article/details/136736154</guid><author>ch_kexin</author><pubDate>Fri, 15 Mar 2024 12:12:01 +0800</pubDate><description><![CDATA[在这个示例中，我们使用 Handler 来实现逐字显示的效果，并且在每个字符显示后更新 TextView 的内容。你可以根据需要调整显示的间隔时间和文本内容。要在 TextView 中实现打印机效果，即字符串逐字显示，并且可以自动换行，你可以使用 Handler 来实现逐字显示的效果。]]></description><category></category></item><item><title><![CDATA[TextView 中实现打印效果并且可以换行]]></title><link>https://blog.youkuaiyun.com/ch_kexin/article/details/136736024</link><guid>https://blog.youkuaiyun.com/ch_kexin/article/details/136736024</guid><author>ch_kexin</author><pubDate>Fri, 15 Mar 2024 12:06:51 +0800</pubDate><description><![CDATA[/ 允许滚动printTextView.setText(“”);String textToPrint = “这是要打印的文本内容，可以包含换行符\n换行符可以让文本换行显示\n继续添加文本内容…通过以上方法，你可以在 TextView 中实现打印效果，并且可以包含换行符让文本换行显示。]]></description><category></category></item><item><title><![CDATA[TextView实现打印机效果 ,字符串逐字显示]]></title><link>https://blog.youkuaiyun.com/ch_kexin/article/details/136635705</link><guid>https://blog.youkuaiyun.com/ch_kexin/article/details/136635705</guid><author>ch_kexin</author><pubDate>Mon, 11 Mar 2024 21:24:50 +0800</pubDate><description><![CDATA[/从0到textCount - 1  是设置从第一个字到最后一个字的变化因子。//所有文字都显示完成之后进度回调结束动画。//过滤去重，保证每个字只重绘一次。* 文字逐个显示动画  通过插值的方式改变数据源。//执行总时间就是每个字的时间乘以字数。//文字绘制到整个布局的中心位置。* @param canvas 画布。//存放单个字的数组。* 设置逐渐显示的字符串。* 每个字出现的时间。]]></description><category></category></item><item><title><![CDATA[Android 动画 Lottie 如何使用]]></title><link>https://blog.youkuaiyun.com/ch_kexin/article/details/134971618</link><guid>https://blog.youkuaiyun.com/ch_kexin/article/details/134971618</guid><author>ch_kexin</author><pubDate>Wed, 13 Dec 2023 14:39:19 +0800</pubDate><description><![CDATA[Lottie 是Airbnb开源的一个面向 iOS、Android、React Native 的动画库，能分析 Adobe After Effects 导出的动画，并且能让原生 App 像使用静态素材一样使用这些动画，完美实现动画效果。1.劣势（1）性能不够好—某些动画特效，内存和性能不够好；相对于属性动画，在展示大动画时，帧率较低2.优势(1)开发效率高—代码实现简单，更换动画方便，易于调试和维护。(2)数据源多样性—可从assets,sdcard,网络加载动画资源，能做到不发版本，动态更新。]]></description><category></category></item><item><title><![CDATA[Android客户端性能工具：gfxinfo输出总结]]></title><link>https://blog.youkuaiyun.com/ch_kexin/article/details/134663261</link><guid>https://blog.youkuaiyun.com/ch_kexin/article/details/134663261</guid><author>ch_kexin</author><pubDate>Tue, 28 Nov 2023 11:41:14 +0800</pubDate><description><![CDATA[【代码】Android客户端性能工具：gfxinfo输出总结。]]></description><category></category></item><item><title><![CDATA[Android 掉帧优化]]></title><link>https://blog.youkuaiyun.com/ch_kexin/article/details/134663144</link><guid>https://blog.youkuaiyun.com/ch_kexin/article/details/134663144</guid><author>ch_kexin</author><pubDate>Tue, 28 Nov 2023 11:18:12 +0800</pubDate><description><![CDATA[对于传统的60刷新率手机来说，每16ms会发出一个VSync信号，复制CPU/GPU放在缓存中的图像，再通知CPU/GPU计算下一帧要显示的内容，再把刚复制的图像显示在屏幕上，这就是一个屏幕刷新周期。运行程序后打开Profile，可以看到CPU、MEMORY、NETWORK和ENERGY四个动态图表，点击CPU后，下方出现CPU Profile界面，如下所示，点击"record"即可开始记录，点击"stop"后得到这一段时间内的方法调用栈。监控掉帧现象时，我们可以使用下方的adb命令，具体可见参考.]]></description><category></category></item><item><title><![CDATA[Android常见的几种RuntimeException]]></title><link>https://blog.youkuaiyun.com/ch_kexin/article/details/130643703</link><guid>https://blog.youkuaiyun.com/ch_kexin/article/details/130643703</guid><author>ch_kexin</author><pubDate>Fri, 12 May 2023 15:37:53 +0800</pubDate><description><![CDATA[当应用试图通过反射方式创建某个类的实例、访问该类属性、调用该类方法，而当时又无法访问类的、属性的、方法的或构造方法的定义时抛出该异常。该错误及其所有子类指示某个类依赖于另外一些类，在该类编译之后，被依赖的类改变了其类定义而没有重新编译所有的类，进而引发错误的情况。当某个线程处于长时间的等待、休眠或其他暂停状态，而此时其他的线程通过Thread的interrupt方法终止该线程时抛出该异常。当某个线程试图等待一个自己并不拥有的对象（O）的监控器或者通知其他线程等待该对象（O）的监控器时，抛出该异常。]]></description><category></category></item><item><title><![CDATA[Android 配置子Module混淆时遇到的错误，和一些零散技术点总结]]></title><link>https://blog.youkuaiyun.com/ch_kexin/article/details/130641325</link><guid>https://blog.youkuaiyun.com/ch_kexin/article/details/130641325</guid><author>ch_kexin</author><pubDate>Fri, 12 May 2023 14:15:56 +0800</pubDate><description><![CDATA[4、所有被主Module直接或间接引用了的Module，在打包时，其AndroidManifest.xml文件都会合并到主Module的AndroidManifest.xml文件中。3、所有Module中的res目录下的资源都会在打包时合并到主Module的res目录下对应文件位置。2、主Module配置了混淆，打包成apk后，其他Module的代码也会一起混淆。1、子Module不能配置混淆，仅仅只能在主Module中配置混淆。6、手机横竖屏时的宽度dp值和高度dp值。]]></description><category></category></item><item><title><![CDATA[Android混淆配置总结-持续更新]]></title><link>https://blog.youkuaiyun.com/ch_kexin/article/details/130604883</link><guid>https://blog.youkuaiyun.com/ch_kexin/article/details/130604883</guid><author>ch_kexin</author><pubDate>Wed, 10 May 2023 16:56:56 +0800</pubDate><description><![CDATA[Android打正式的release包混淆是必备的，避免APP被反编译，使项目中隐秘的技术或信息被别人查看。]]></description><category></category></item><item><title><![CDATA[Android 混淆介绍]]></title><link>https://blog.youkuaiyun.com/ch_kexin/article/details/130604715</link><guid>https://blog.youkuaiyun.com/ch_kexin/article/details/130604715</guid><author>ch_kexin</author><pubDate>Wed, 10 May 2023 16:52:12 +0800</pubDate><description><![CDATA[Android 混淆介绍
目录：
一、启用混淆文件
二、ProGuard作用
三、编辑混淆文件 （五步搞定）
四、常用混淆写法
五、其他一些混淆注意事项]]></description><category></category></item><item><title><![CDATA[Android之AppWidget 开发浅析]]></title><link>https://blog.youkuaiyun.com/ch_kexin/article/details/130081734</link><guid>https://blog.youkuaiyun.com/ch_kexin/article/details/130081734</guid><author>ch_kexin</author><pubDate>Tue, 11 Apr 2023 13:49:41 +0800</pubDate><description><![CDATA[AppWidget]]></description><category></category></item><item><title><![CDATA[Android gradlew 常用命令]]></title><link>https://blog.youkuaiyun.com/ch_kexin/article/details/130053784</link><guid>https://blog.youkuaiyun.com/ch_kexin/article/details/130053784</guid><author>ch_kexin</author><pubDate>Mon, 10 Apr 2023 10:11:19 +0800</pubDate><description><![CDATA[gradlew命令都可以使用简写，例如：./gradlew assembleRelease 简写为：./gradlew aR快速构建命令。]]></description><category></category></item><item><title><![CDATA[Android 模拟发送按键事件]]></title><link>https://blog.youkuaiyun.com/ch_kexin/article/details/128845292</link><guid>https://blog.youkuaiyun.com/ch_kexin/article/details/128845292</guid><author>ch_kexin</author><pubDate>Thu, 02 Feb 2023 10:10:48 +0800</pubDate><description><![CDATA[keydown,android]]></description><category></category></item><item><title><![CDATA[报错：Only the original thread that created a view hierarchy can touch its views.]]></title><link>https://blog.youkuaiyun.com/ch_kexin/article/details/128779952</link><guid>https://blog.youkuaiyun.com/ch_kexin/article/details/128779952</guid><author>ch_kexin</author><pubDate>Sat, 28 Jan 2023 17:03:53 +0800</pubDate><description><![CDATA[主线程，子线程]]></description><category></category></item><item><title><![CDATA[android 多张图片渐变切换控件]]></title><link>https://blog.youkuaiyun.com/ch_kexin/article/details/128534158</link><guid>https://blog.youkuaiyun.com/ch_kexin/article/details/128534158</guid><author>ch_kexin</author><pubDate>Tue, 03 Jan 2023 15:44:46 +0800</pubDate><description><![CDATA[android 多张图片渐变切换控件]]></description><category></category></item></channel></rss>