<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[Azadoo的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/Azadoo</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; Azadoo]]></copyright><item><title><![CDATA[实现顶部圆角的自定义ImageView]]></title><link>https://blog.youkuaiyun.com/Azadoo/article/details/140555519</link><guid>https://blog.youkuaiyun.com/Azadoo/article/details/140555519</guid><author>Azadoo</author><pubDate>Fri, 19 Jul 2024 17:24:29 +0800</pubDate><description><![CDATA[【代码】实现顶部圆角的自定义ImageView。]]></description><category></category></item><item><title><![CDATA[ReactNative入门]]></title><link>https://blog.youkuaiyun.com/Azadoo/article/details/129718013</link><guid>https://blog.youkuaiyun.com/Azadoo/article/details/129718013</guid><author>Azadoo</author><pubDate>Mon, 17 Apr 2023 09:50:39 +0800</pubDate><description><![CDATA[React基本用法：react与js不同的点在于 react使用的是虚拟DOM js是真实DOM作用：当有新的数据填充 可以复用之前的，而js需要整体重新渲染创建虚拟DOM还可以使用jsx语法直接声明：注意要用babel标签将jsx转化为js但是建议采用jsx直接声明 在对于多标签DOM时js的方法需要不停嵌套非常麻烦jsx语法规则。]]></description><category></category></item><item><title><![CDATA[Android的主线程可以一直存在的原因]]></title><link>https://blog.youkuaiyun.com/Azadoo/article/details/123955502</link><guid>https://blog.youkuaiyun.com/Azadoo/article/details/123955502</guid><author>Azadoo</author><pubDate>Mon, 13 Mar 2023 10:45:13 +0800</pubDate><description><![CDATA[线程是一个动态执行的过程，从产生到死亡包括五个状态：新建、就绪、运行、死亡和堵塞。只要线程没有执行完毕或者没有被其它线程杀死，线程就不会进入死亡状态。Android中的主线程一直存在是因为主线程中一直在监听消息（通过死循环looper.loop一直获取消息），从而使线程无法被执行完毕。
问：这个死循环为什么不会导致,主线程阻塞或者几秒无响应发生ANR？
这里就涉及到Linux pipe/epoll机制，简单说就是在主线程的MessageQueue没有消息时，便阻塞在loop的queue.next()中的na]]></description><category></category></item><item><title><![CDATA[主线程可以一直存在的原因]]></title><link>https://blog.youkuaiyun.com/Azadoo/article/details/124121641</link><guid>https://blog.youkuaiyun.com/Azadoo/article/details/124121641</guid><author>Azadoo</author><pubDate>Mon, 13 Mar 2023 10:42:38 +0800</pubDate><description><![CDATA[这里就涉及到Linux pipe/epoll机制，简单说就是在主线程的MessageQueue没有消息时，便阻塞在loop的queue.next()中的nativePollOnce()方法里，此时主线程会释放CPU资源进入休眠状态，直到下个消息到达或者有事务发生，通过往pipe管道写端写入数据来唤醒主线程工作。只要线程没有执行完毕或者没有被其它线程杀死，线程就不会进入死亡状态。，可以同时监控多个描述符，当某个描述符就绪(读或写就绪)，则立刻通知相应程序进行读或写操作，本质同步I/O，即读写是阻塞的。]]></description><category></category></item><item><title><![CDATA[debug时报anr错：Reason: Input dispatching timed out 解决办法]]></title><link>https://blog.youkuaiyun.com/Azadoo/article/details/128152507</link><guid>https://blog.youkuaiyun.com/Azadoo/article/details/128152507</guid><author>Azadoo</author><pubDate>Fri, 02 Dec 2022 18:21:18 +0800</pubDate><description><![CDATA[在排查问题对点击事件的监听debug时，突然遇到这种anr报错 大体意思是点击事件超过5s没有回应 系统报出anr错误并闪退，导致我无法debug查看问题。android Studio 输入下方命令行即可不闪退 正常debug操作。]]></description><category></category></item><item><title><![CDATA[查看当前Activity或service]]></title><link>https://blog.youkuaiyun.com/Azadoo/article/details/127888018</link><guid>https://blog.youkuaiyun.com/Azadoo/article/details/127888018</guid><author>Azadoo</author><pubDate>Wed, 16 Nov 2022 16:31:34 +0800</pubDate><description><![CDATA[adb shell。]]></description><category></category></item><item><title><![CDATA[使用anrwatchdog抓取错误日志]]></title><link>https://blog.youkuaiyun.com/Azadoo/article/details/127409439</link><guid>https://blog.youkuaiyun.com/Azadoo/article/details/127409439</guid><author>Azadoo</author><pubDate>Wed, 19 Oct 2022 16:21:00 +0800</pubDate><description><![CDATA[buld.gradle 中引入。]]></description><category></category></item><item><title><![CDATA[抓取特定路径下文件 可批量压缩成压缩包 并分享到微信]]></title><link>https://blog.youkuaiyun.com/Azadoo/article/details/127410189</link><guid>https://blog.youkuaiyun.com/Azadoo/article/details/127410189</guid><author>Azadoo</author><pubDate>Wed, 19 Oct 2022 16:20:02 +0800</pubDate><description><![CDATA[【代码】抓取特定路径下文件 可批量压缩成压缩包 并分享到微信。]]></description><category></category></item><item><title><![CDATA[监听多次点击事件]]></title><link>https://blog.youkuaiyun.com/Azadoo/article/details/127409960</link><guid>https://blog.youkuaiyun.com/Azadoo/article/details/127409960</guid><author>Azadoo</author><pubDate>Wed, 19 Oct 2022 16:09:07 +0800</pubDate><description><![CDATA[【代码】监听多次点击事件。]]></description><category></category></item><item><title><![CDATA[adb shell命令行]]></title><link>https://blog.youkuaiyun.com/Azadoo/article/details/126707283</link><guid>https://blog.youkuaiyun.com/Azadoo/article/details/126707283</guid><author>Azadoo</author><pubDate>Mon, 05 Sep 2022 16:20:03 +0800</pubDate><description><![CDATA[打checkDebug类型包 可以替换成release等其他类型 会在app\build\outputs\apk\路径下。]]></description><category></category></item><item><title><![CDATA[Activity跳转时会闪屏问题解决方案（或打开弹窗底层Activity移动问题）]]></title><link>https://blog.youkuaiyun.com/Azadoo/article/details/126545798</link><guid>https://blog.youkuaiyun.com/Azadoo/article/details/126545798</guid><author>Azadoo</author><pubDate>Fri, 26 Aug 2022 16:34:05 +0800</pubDate><description><![CDATA[问题发现途径：
页面A需要跳一个透明背景的页面B 发现跳转过程A页面整体会向左移动 并后续会变成纯黑色
如上所述问题有两个： 1. A页面移动     2 . A页面呈现黑色导致B的背景不是原A页面]]></description><category></category></item><item><title><![CDATA[判断textView是否需要展开收起按钮 （超出给定行数）]]></title><link>https://blog.youkuaiyun.com/Azadoo/article/details/126530127</link><guid>https://blog.youkuaiyun.com/Azadoo/article/details/126530127</guid><author>Azadoo</author><pubDate>Thu, 25 Aug 2022 18:17:00 +0800</pubDate><description><![CDATA[判断textView是否需要展开收起按钮 （超出给定行数）]]></description><category></category></item><item><title><![CDATA[RecycleView原生滚动进度条ScrollBar]]></title><link>https://blog.youkuaiyun.com/Azadoo/article/details/126530005</link><guid>https://blog.youkuaiyun.com/Azadoo/article/details/126530005</guid><author>Azadoo</author><pubDate>Thu, 25 Aug 2022 18:09:57 +0800</pubDate><description><![CDATA[android:fadeScrollbars=”true”（默认参数）是在滑块不滚动时，隐藏。android:fadeScrollbars=”false”是在滑块不滚动时，不隐藏。insideOverlay：默认值，表示在padding区域内并且覆盖在view上。outsideOverlay：表示在padding区域外并且覆盖在view上。outsideInset：表示在padding区域外并且插入在view后面。insideInset：表示在padding区域内并且插入在view后面。...]]></description><category></category></item><item><title><![CDATA[修改app or avtivity主题]]></title><link>https://blog.youkuaiyun.com/Azadoo/article/details/126506882</link><guid>https://blog.youkuaiyun.com/Azadoo/article/details/126506882</guid><author>Azadoo</author><pubDate>Wed, 24 Aug 2022 16:11:55 +0800</pubDate><description><![CDATA[然后再AndroidManifest.xml找到对应的Activity 新增theme属性。首先在values/themes.xml中 写一个透明的style。比如想写一个弹窗 背景是透明的。]]></description><category></category></item><item><title><![CDATA[工具类：展开收起文字]]></title><link>https://blog.youkuaiyun.com/Azadoo/article/details/126506355</link><guid>https://blog.youkuaiyun.com/Azadoo/article/details/126506355</guid><author>Azadoo</author><pubDate>Wed, 24 Aug 2022 15:57:34 +0800</pubDate><description><![CDATA[点击展开或文字后 文字全部显示 展开按钮变成收起按钮 点击文字或收起按钮则文字变为两行 显示展开。最多展示两行文字 超出末尾显示省略号 并且在第三行开头展示“展开”按钮。文字不超过两行正常显示  无展开按钮。...]]></description><category></category></item><item><title><![CDATA[＜include＞标签使用说明]]></title><link>https://blog.youkuaiyun.com/Azadoo/article/details/126505936</link><guid>https://blog.youkuaiyun.com/Azadoo/article/details/126505936</guid><author>Azadoo</author><pubDate>Wed, 24 Aug 2022 15:49:31 +0800</pubDate><description><![CDATA[比如你已经写了一个页面A 但是在另一个B页面也需要展示A页面  大致如下图。layout属性后面是对应的A布局的文件名。即可在B页面使用include。]]></description><category></category></item><item><title><![CDATA[实现View点击时与默认显示不同的背景颜色]]></title><link>https://blog.youkuaiyun.com/Azadoo/article/details/126381839</link><guid>https://blog.youkuaiyun.com/Azadoo/article/details/126381839</guid><author>Azadoo</author><pubDate>Wed, 17 Aug 2022 11:41:21 +0800</pubDate><description><![CDATA[在需要实现的View直接setBackground该xml。先实现一个xml 在这里声明点击态背景与默认背景。]]></description><category></category></item><item><title><![CDATA[FragmentTransaction replace与show hide实现Tab分页]]></title><link>https://blog.youkuaiyun.com/Azadoo/article/details/126270688</link><guid>https://blog.youkuaiyun.com/Azadoo/article/details/126270688</guid><author>Azadoo</author><pubDate>Wed, 10 Aug 2022 17:46:15 +0800</pubDate><description><![CDATA[常规的tab分页是通过Tablayout + ViewPager2实现
但是Tablayout 继承 HorizontalScrollView 只能实现横向布局
在垂直tab 并且需求简单的场景下 就可以使用FragmentTransaction
左侧tab采用两个linearLayout实现 点击则可进行fragment切换...]]></description><category></category></item><item><title><![CDATA[自定义recycleView的删除&移动的动画]]></title><link>https://blog.youkuaiyun.com/Azadoo/article/details/125980089</link><guid>https://blog.youkuaiyun.com/Azadoo/article/details/125980089</guid><author>Azadoo</author><pubDate>Mon, 25 Jul 2022 18:07:15 +0800</pubDate><description><![CDATA[坏消息是内部没有能直接提供调用开始移动动画或删除动画的方法有的是runPendingAnimations()该方法内部设置了各个动画的执行实际我们重写这个方法几乎等同于需要重写整个类。但是recycleView默认的是删除动画执行完之后才去执行移动动画这种情况下思路1就无法达到预期只能重写SimpleItemAnimator了。简单的场景下思路1是可以达到预期效果的，但是个人在项目中遇到了另一个难题，ui给的动画需要在执行删除动画的同时下方列表要同时上移。...]]></description><category></category></item><item><title><![CDATA[xml编写补间动画 PopupWindow实现出现退出的动画]]></title><link>https://blog.youkuaiyun.com/Azadoo/article/details/125906512</link><guid>https://blog.youkuaiyun.com/Azadoo/article/details/125906512</guid><author>Azadoo</author><pubDate>Thu, 21 Jul 2022 10:25:17 +0800</pubDate><description><![CDATA[alpha、scale、translate、rotate、set的xml属性及用法
PopupWindow实现出场退场动画]]></description><category></category></item></channel></rss>