<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[Mine]]></title><description><![CDATA[mine]]></description><link>https://blog.youkuaiyun.com/wangyun522</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; wangyun522]]></copyright><item><title><![CDATA[安卓上的 3D 模型加载 和骨骼动画 库 SceneView]]></title><link>https://blog.youkuaiyun.com/wangyun522/article/details/129173629</link><guid>https://blog.youkuaiyun.com/wangyun522/article/details/129173629</guid><author>wangyun522</author><pubDate>Thu, 23 Feb 2023 01:29:42 +0800</pubDate><description><![CDATA[android 3d 模型加载库 可以实现骨骼动画]]></description><category></category></item><item><title><![CDATA[用 WifiManager 代码连接热点的一些坑]]></title><link>https://blog.youkuaiyun.com/wangyun522/article/details/125619440</link><guid>https://blog.youkuaiyun.com/wangyun522/article/details/125619440</guid><author>wangyun522</author><pubDate>Tue, 05 Jul 2022 19:47:57 +0800</pubDate><description><![CDATA[WifiManager 连接热点的各种情况适配]]></description><category></category></item><item><title><![CDATA[Mac 下 Docker搭建RAP2 记录]]></title><link>https://blog.youkuaiyun.com/wangyun522/article/details/119359141</link><guid>https://blog.youkuaiyun.com/wangyun522/article/details/119359141</guid><author>wangyun522</author><pubDate>Tue, 03 Aug 2021 21:21:17 +0800</pubDate><description><![CDATA[有时候，后端不方便模拟相应数据，比如后端不是服务器端，是智能硬件的时候，但测试同学需要相关接口，方便的进行测试。如果要在硬件上模拟，会很费劲。这个时候用自己的机器模拟一下就很方便。

1 。安装Docker ，
用brew进行安装
brew cask install docker

2. 安装 rap2套件
从 https://github.com/thx/rap2-delos  按照安装说明。执行命令，如果一个一个软件装，天都 黑了，也装不完。
docker-compose up -d

但这里有两个坑.]]></description><category></category></item><item><title><![CDATA[ObjectBox 多人 git 提交 数据模型冲突解决（翻译）]]></title><link>https://blog.youkuaiyun.com/wangyun522/article/details/118516185</link><guid>https://blog.youkuaiyun.com/wangyun522/article/details/118516185</guid><author>wangyun522</author><pubDate>Tue, 06 Jul 2021 11:43:24 +0800</pubDate><description><![CDATA[多人开发下，用Objectbox，肯定会有冲突问题，给某些看不懂英文的同学
原文链接

Resolving Meta Model Conflicts
In the section on UIDs, we already hinted at the possibility of meta model conflicts. This is caused by developers changing the meta model concurrently, typically by adding entities]]></description><category></category></item><item><title><![CDATA[android R （android 11 ）（sdk 30 ）上相册刷新问题]]></title><link>https://blog.youkuaiyun.com/wangyun522/article/details/118117415</link><guid>https://blog.youkuaiyun.com/wangyun522/article/details/118117415</guid><author>wangyun522</author><pubDate>Tue, 22 Jun 2021 21:15:38 +0800</pubDate><description><![CDATA[当你的机器Build.VERSION.SDK_INT &gt; Build.VERSION_CODES.Q 的时候，你会发现刷新相册的方法不好使了，因为30的机器上，已经不允许直接发广播刷目录就允许显示了，取而代之的是，他用了一个需要再拷贝一次的方法，如下, 有两点，一个是需要用MediaStore.Video.Media去获取一个uri， 获取时传入的参数里面的contentValue 有两个重要的项MediaStore.Video.Media.RELATIVE_PATH  和MediaStore.Med]]></description><category></category></item><item><title><![CDATA[docker 更新 battery historian 3 记录]]></title><link>https://blog.youkuaiyun.com/wangyun522/article/details/118048669</link><guid>https://blog.youkuaiyun.com/wangyun522/article/details/118048669</guid><author>wangyun522</author><pubDate>Sat, 19 Jun 2021 10:46:56 +0800</pubDate><description><![CDATA[升级mac 后， docker打不开了，
更新docker 后 ， 发现现在的battery historian 都已经到3.0了。去https://github.com/google/battery-historian 查看了一下命令 ，修正如下。


docker -- run -p  :9999 gcr.io/android-battery-historian/stable:3.0 --port 9999




...]]></description><category></category></item><item><title><![CDATA[迁移 到AndroidX 的一些坑]]></title><link>https://blog.youkuaiyun.com/wangyun522/article/details/103940690</link><guid>https://blog.youkuaiyun.com/wangyun522/article/details/103940690</guid><author>wangyun522</author><pubDate>Sat, 11 Jan 2020 21:34:38 +0800</pubDate><description><![CDATA[最近看github上的项目 十有八九都已经是 androidX的了，一方面感叹之余，另一方面也想把两年的老项目升级一下，说干就干，拉一个分支，一波走起。
gradle.properties 配置一波
#表示当前项目启用 androidx
android.enableJetifier=true
#表示将依赖包也迁移到androidx
android.useAndroidX=true

app 下的g...]]></description><category></category></item><item><title><![CDATA[安卓协程异步任务实践]]></title><link>https://blog.youkuaiyun.com/wangyun522/article/details/103922918</link><guid>https://blog.youkuaiyun.com/wangyun522/article/details/103922918</guid><author>wangyun522</author><pubDate>Fri, 10 Jan 2020 14:21:30 +0800</pubDate><description><![CDATA[使用协程的过程中，最常遇到的就是处理异步任务，先来前期的一些动作。设置BaseActivity
这里为什么要用覆写上下文的方式，是因为这里可以加入统一的异常 handler处理
open class BaseCorountineActivty : AppCompatActivity(),  CoroutineScope {
    //统一处理协程中异常的报错
    val handler = ...]]></description><category></category></item><item><title><![CDATA[kotin 协程中的模式与反模式]]></title><link>https://blog.youkuaiyun.com/wangyun522/article/details/103675282</link><guid>https://blog.youkuaiyun.com/wangyun522/article/details/103675282</guid><author>wangyun522</author><pubDate>Tue, 24 Dec 2019 00:44:23 +0800</pubDate><description><![CDATA[原文链接
个人觉得这个在使用协程过程中是个很好的说明，一般根据直觉的话，很有可能写出某些反模式的用法。
内容
介绍
依我之见，我决定写几点，来表明在使用协程的过程中，应当或者不应当的几件事（或者至少尽力避免）。
用 coroutineScope 或者SupervisorJob 来封装async调用来处理异常
❌ async代码块可能会抛异常，别指望用try/catch可以包裹处理
val job:...]]></description><category></category></item><item><title><![CDATA[kotlin Channel Flow 遇到的问题]]></title><link>https://blog.youkuaiyun.com/wangyun522/article/details/103590128</link><guid>https://blog.youkuaiyun.com/wangyun522/article/details/103590128</guid><author>wangyun522</author><pubDate>Wed, 18 Dec 2019 01:04:43 +0800</pubDate><description><![CDATA[首先是channel 如果  channel 调用过一次 receive 那么再用for循环去拿到的就会少一个，
val markerchannel = Channel&lt;Marker&gt;()
            launch {
                //发送楼盘描述
                for (i in 0..(dragPositionDesArray.si...]]></description><category></category></item><item><title><![CDATA[android项目集成 flutter]]></title><link>https://blog.youkuaiyun.com/wangyun522/article/details/103555399</link><guid>https://blog.youkuaiyun.com/wangyun522/article/details/103555399</guid><author>wangyun522</author><pubDate>Sun, 15 Dec 2019 23:45:38 +0800</pubDate><description><![CDATA[官方链接参考
目前大部分项目都是已经有原生的了，然后集成flutter作为子模块开发，趟了一些坑，记录一下

flutter目前只支持 arm v7 和v8 架构

android {
  //...
  defaultConfig {
    ndk {
      // Filter for architectures supported by Flutter.
      abiFilter...]]></description><category></category></item><item><title><![CDATA[animated-rotate 的 drawable 的卡顿与解决办法]]></title><link>https://blog.youkuaiyun.com/wangyun522/article/details/103535813</link><guid>https://blog.youkuaiyun.com/wangyun522/article/details/103535813</guid><author>wangyun522</author><pubDate>Sat, 14 Dec 2019 07:06:39 +0800</pubDate><description><![CDATA[偶然在系统源码中看到这个东西 style="?android:attr/progressBarStyle" 发现他用了一个类似如下的 drawable ，
&lt;animated-rotate xmlns:android="http://schemas.android.com/apk/res/android"
    android:drawable="@drawable/progressbar...]]></description><category></category></item><item><title><![CDATA[协程在Activity中的运用]]></title><link>https://blog.youkuaiyun.com/wangyun522/article/details/103535773</link><guid>https://blog.youkuaiyun.com/wangyun522/article/details/103535773</guid><author>wangyun522</author><pubDate>Sat, 14 Dec 2019 06:10:14 +0800</pubDate><description><![CDATA[早期的版本
class MyActivity ：AppCompatActivity，  CoroutineScope {
	val job = Job()
    //指定协程的scope
    override val coroutineContext: CoroutineContext
        get() = job + Dispatchers.Main
	override fun ...]]></description><category></category></item><item><title><![CDATA[协程 channel 官方文档 翻译]]></title><link>https://blog.youkuaiyun.com/wangyun522/article/details/103518502</link><guid>https://blog.youkuaiyun.com/wangyun522/article/details/103518502</guid><author>wangyun522</author><pubDate>Thu, 12 Dec 2019 23:07:59 +0800</pubDate><description><![CDATA[这里写自定义目录标题ChannelsChannel 基础关闭和迭代处理channel构造channel中的生产者管道用管道求素数
Channels
当在协程之间传递一个单独的值的时候，延迟传递的值是一种方便的形式。Channels提供了一种以流的方式传递这类值的方式。
Channel 基础
Channel 在概念上来说非常类似阻塞队列。它们之间的主要不同是，存放数据的时候，阻塞队列采用阻塞式的 p...]]></description><category></category></item><item><title><![CDATA[Realm 所做的改进]]></title><link>https://blog.youkuaiyun.com/wangyun522/article/details/102634637</link><guid>https://blog.youkuaiyun.com/wangyun522/article/details/102634637</guid><author>wangyun522</author><pubDate>Sat, 19 Oct 2019 07:58:17 +0800</pubDate><description><![CDATA[传统的Sqlite + orm 数据抽象 是有漏洞的， 因为 orm 只是简单的把对象和他们的方法转换成相应的sql 语句，结果上 ，它只是一种为开发者提高生产效率的形式上的手段， Realm ，另一方面，是一个对象性数据库，意味着你的对象直接反映为数据库。这种直接对数据库的访问，引导出了下一个主题， 零拷贝。


零拷贝：传统的从数据库读数据的方法通常会导致没必要的一些复制动作（原始数据 -...]]></description><category></category></item><item><title><![CDATA[ConstraintLayout 2.0 beta2 中motionLayout的一些坑]]></title><link>https://blog.youkuaiyun.com/wangyun522/article/details/101386679</link><guid>https://blog.youkuaiyun.com/wangyun522/article/details/101386679</guid><author>wangyun522</author><pubDate>Wed, 25 Sep 2019 21:12:30 +0800</pubDate><description><![CDATA[布局中，如果android:fitsSystemWindows=“true”  没有设置的话，会有 fragment 中的recycleview 更新数据后 视图不及时更新的问题
布局如果是xml 写的，那么会遇到第二次设置Textview值无法更新长度的问题，额，真坑

...]]></description><category></category></item><item><title><![CDATA[自定义 LayoutManger需要注意的几个地方]]></title><link>https://blog.youkuaiyun.com/wangyun522/article/details/89007809</link><guid>https://blog.youkuaiyun.com/wangyun522/article/details/89007809</guid><author>wangyun522</author><pubDate>Thu, 04 Apr 2019 00:07:54 +0800</pubDate><description><![CDATA[最近写销控表，需要有上万个数据表格的情况，
首先感谢 https://blog.youkuaiyun.com/wuyuxing24/article/details/79047924 的帖主，给了大家一个非常好的例子。本文也是根据他的帖子的原理，整理了自己在编写销控表的时候遇到的问题。
辅助字段帮助layoutDecoratedWithMargins进行定位;
很多demo 在onLayoutChildren ...]]></description><category></category></item><item><title><![CDATA[Baidu地图的坑]]></title><link>https://blog.youkuaiyun.com/wangyun522/article/details/88625244</link><guid>https://blog.youkuaiyun.com/wangyun522/article/details/88625244</guid><author>wangyun522</author><pubDate>Sun, 17 Mar 2019 19:55:22 +0800</pubDate><description><![CDATA[这里写自定义目录标题欢迎使用Markdown编辑器新的改变功能快捷键合理的创建标题，有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能，丰富你的文章UML 图表FLowchart流程图导出与导入导出导入
欢迎使用Ma...]]></description><category></category></item><item><title><![CDATA[融云一些坑记录]]></title><link>https://blog.youkuaiyun.com/wangyun522/article/details/88374611</link><guid>https://blog.youkuaiyun.com/wangyun522/article/details/88374611</guid><author>wangyun522</author><pubDate>Sun, 10 Mar 2019 06:27:03 +0800</pubDate><description><![CDATA[单条消息最大128K，所以不能设置太多消息内容。字段太多之后，尾部的字段就会丢失。
2.自定义通知类消息不能填满屏幕宽度。只能手动设置。
3.要更改头像旁边的文字内容只能手动覆盖原有的消息提供者，去去加布局内容，比如重写系统的TextMessageItemProvider，然后再注册一下该提供者。


...]]></description><category></category></item><item><title><![CDATA[融云自定义拍照插件]]></title><link>https://blog.youkuaiyun.com/wangyun522/article/details/88039505</link><guid>https://blog.youkuaiyun.com/wangyun522/article/details/88039505</guid><author>wangyun522</author><pubDate>Thu, 28 Feb 2019 18:10:42 +0800</pubDate><description><![CDATA[引子

发送自定义消息时 ConverstaionActivity（自定义的会话详情页）不显示的问题
一般官方文档会让你在布局汇总使用 来实现会话详情页，但当收不到消息的时候，你本能的想用fragment去刷新页面，实际上不需要
&amp;amp;lt;fragment
        android:id=&amp;quot;@+id/conversation&amp;quot;
        android:name=&amp;quot;io.rong.imk...]]></description><category></category></item></channel></rss>