<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[跟着哆啦学Android]]></title><description><![CDATA[有道无术术可求，有术无道止于术。]]></description><link>https://blog.youkuaiyun.com/a_lwh____</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; a_lwh____]]></copyright><item><title><![CDATA[Flutter多语言适配]]></title><link>https://blog.youkuaiyun.com/a_lwh____/article/details/142864222</link><guid>https://blog.youkuaiyun.com/a_lwh____/article/details/142864222</guid><author>a_lwh____</author><pubDate>Fri, 11 Oct 2024 21:59:12 +0800</pubDate><description><![CDATA[多语言适配是一个让应用面向国际市场的前提，另外也看我的Android原生的多语言适配的文章。那么Flutter如何进行多语言适配呢？本文使用了GetX框架，所以你的项目应该是GetX框架搭建的。]]></description><category></category></item><item><title><![CDATA[AES加密，全平台实现！]]></title><link>https://blog.youkuaiyun.com/a_lwh____/article/details/142864172</link><guid>https://blog.youkuaiyun.com/a_lwh____/article/details/142864172</guid><author>a_lwh____</author><pubDate>Fri, 11 Oct 2024 21:54:17 +0800</pubDate><description><![CDATA[今天我们来聊聊数据加密与隐私相关话题。本人开发的加密工具，欢迎体验！AES加密，通俗的话来讲，就是用一个key把原数据变成一个新数据，也通过这个key还原成原数据。所以，它是一种对称的加密方式。只要别人不知道这个key，就无法解开数据的内容。它是DES加密的升级版本，由于AES的密钥长度更长，所以更安全。但是它的效率略有降低，不过这对于现代的计算机设备来说可以忽略不计。数字加密在当今数字时代的重要性不容忽视。高级加密标准）是一种对称加密算法，用于加密和解密数据。]]></description><category></category></item><item><title><![CDATA[手把手教你实现一个文件浏览器]]></title><link>https://blog.youkuaiyun.com/a_lwh____/article/details/142175803</link><guid>https://blog.youkuaiyun.com/a_lwh____/article/details/142175803</guid><author>a_lwh____</author><pubDate>Thu, 12 Sep 2024 14:48:52 +0800</pubDate><description><![CDATA[文件浏览器组件已经被定义到dview框架集合下，。]]></description><category></category></item><item><title><![CDATA[实现一个全站搜索功能的那些事]]></title><link>https://blog.youkuaiyun.com/a_lwh____/article/details/141038892</link><guid>https://blog.youkuaiyun.com/a_lwh____/article/details/141038892</guid><author>a_lwh____</author><pubDate>Thu, 08 Aug 2024 23:30:04 +0800</pubDate><description><![CDATA[本篇主要讲述了Solr搜索引擎的前后端基本使用，我们搜索的时候通常还会分类进行搜索，比如综合、热门、文件、文章等，这个还会牵扯到自定义搜索结果的权重算法，有兴趣的JY可以自行深入研究。]]></description><category></category></item><item><title><![CDATA[一文看懂数据缓存框架DoraCache]]></title><link>https://blog.youkuaiyun.com/a_lwh____/article/details/141038867</link><guid>https://blog.youkuaiyun.com/a_lwh____/article/details/141038867</guid><author>a_lwh____</author><pubDate>Thu, 08 Aug 2024 23:27:51 +0800</pubDate><description><![CDATA[dcache是一个开源的Android离线数据缓存框架，旨在提供一种简单而高效的方式来缓存网络请求的结果和其他数据，以便在手机没有网络的时候使用历史缓存数据。它可以用于缓存各种类型的数据，包括字符串、JSON、图片、音频和视频等。以下是dcache的主要特点：简单易用：dcache提供了简单易用的API，使得缓存数据变得非常容易。您只需几行代码即可将数据缓存到本地，而不需要处理复杂的缓存逻辑。可配置性强：dcache提供了丰富的配置选项，您可以根据自己的需求来调整缓存所使用的orm框架、缓存路径等参数。]]></description><category></category></item><item><title><![CDATA[分页缓存与下拉刷新的整合原理 - DoraPageDatabaseCacheRepository]]></title><link>https://blog.youkuaiyun.com/a_lwh____/article/details/139941819</link><guid>https://blog.youkuaiyun.com/a_lwh____/article/details/139941819</guid><author>a_lwh____</author><pubDate>Tue, 25 Jun 2024 00:05:43 +0800</pubDate><description><![CDATA[这个类就是为了告诉框架，你要缓存的数据结构是一个List类型的SystemNotification，而且会一页一页给到，请帮我缓存好了。一旦调用抓取数据的函数，就会调用onLoadFromNetwork()方法，加载最新参数的数据，这边的数据监听器就会被回调，同时将数据缓存一份到数据库中，以备无网络的时候使用。在这个分页缓存仓库类中，定义了分页的一些参数，如第几页？顾名思义，分页缓存就是边分页边缓存，分页通常使用下拉刷新控件实现，而缓存通常说的是指磁盘缓存，即保存到数据库中，数据库本身也是一个索引文件。]]></description><category></category></item><item><title><![CDATA[Android低代码开发 - InputMenuPanelItem详解]]></title><link>https://blog.youkuaiyun.com/a_lwh____/article/details/139660210</link><guid>https://blog.youkuaiyun.com/a_lwh____/article/details/139660210</guid><author>a_lwh____</author><pubDate>Thu, 13 Jun 2024 17:37:13 +0800</pubDate><description><![CDATA[不管怎么说，输入菜单InputMenuPanelItem都是一个举足轻重的核心菜单项，对于它的优化，可不能马虎。MenuPanel遵循低代码设计理念，目的是为了让大家写代码就像拼积木一样，把能想到的尽可能多的考虑到，写代码就跟玩一样。]]></description><category></category></item><item><title><![CDATA[Android低代码开发 - 直接创建一个下拉刷新列表界面]]></title><link>https://blog.youkuaiyun.com/a_lwh____/article/details/139650509</link><guid>https://blog.youkuaiyun.com/a_lwh____/article/details/139650509</guid><author>a_lwh____</author><pubDate>Thu, 13 Jun 2024 12:00:21 +0800</pubDate><description><![CDATA[== 0) {// 滑到底部了= null) {} else {它实现了一个顶层接口Pullable，通过和两个方法来在运行时动态判断可不可以下拉刷新和上拉加载。里面提供了两个属性，表示是否有下拉和上拉能力，如果设置为false，则无论条件达成与否都不能进行刷新和加载。]]></description><category></category></item><item><title><![CDATA[适配Android12启动页]]></title><link>https://blog.youkuaiyun.com/a_lwh____/article/details/139485062</link><guid>https://blog.youkuaiyun.com/a_lwh____/article/details/139485062</guid><author>a_lwh____</author><pubDate>Thu, 06 Jun 2024 00:10:31 +0800</pubDate><description><![CDATA[Android开发本不使用启动页，结果就被我们一些大厂玩坏了，比较有名的就是腾讯QQ的那只企鹅，估计是为了体现品牌形象，或是为了方便打广告，于是就强加了一个启动页。这样一来倒好，各个互联网平台纷纷效仿，人家技术好倒罢了，一些新入行的小白也开始这样写，于是就引出了启动黑屏或白屏一段时间等问题，这里我就不多吐槽了。而热启动就是退出后台没多久，可以继续使用的时候。奇怪的是，Android官方现在还真搞了这么一个启动页的API，目的应该不是为了方便打广告，而是保证最快打开一个页面展示给用户，然后耗时的延后加载。]]></description><category></category></item><item><title><![CDATA[Android状态栏适配问题]]></title><link>https://blog.youkuaiyun.com/a_lwh____/article/details/139485037</link><guid>https://blog.youkuaiyun.com/a_lwh____/article/details/139485037</guid><author>a_lwh____</author><pubDate>Thu, 06 Jun 2024 00:08:11 +0800</pubDate><description><![CDATA[Android状态栏适配是一个老生常谈的问题，那么我又拿出来讲了，因为这个东西确实太重要了，基本上每个项目都用得到。状态栏总共有几种形态。第一，让状态栏颜色跟应用主色调一致，布局内容不占有状态栏的位置。第二，让布局内容的顶部成为状态栏的一部分，状态栏透明。第三，有DrawerLayout的情况，侧边栏滑出来，一半侧边栏的顶部界面，一半内容的顶部界面，且不透明。]]></description><category></category></item><item><title><![CDATA[Android自定义View - LayoutParams]]></title><link>https://blog.youkuaiyun.com/a_lwh____/article/details/139456883</link><guid>https://blog.youkuaiyun.com/a_lwh____/article/details/139456883</guid><author>a_lwh____</author><pubDate>Wed, 05 Jun 2024 00:17:42 +0800</pubDate><description><![CDATA[这一期我们来讲一讲LayoutParams这个玩意儿。Android入门的第一行代码就牵扯到这个东西，然而，你真的理解够了吗？]]></description><category></category></item><item><title><![CDATA[Android自定义View - 事件分发]]></title><link>https://blog.youkuaiyun.com/a_lwh____/article/details/139456867</link><guid>https://blog.youkuaiyun.com/a_lwh____/article/details/139456867</guid><author>a_lwh____</author><pubDate>Wed, 05 Jun 2024 00:16:34 +0800</pubDate><description><![CDATA[我们开发自定义View的时候，通常是重写onTouchEvent()方法并return true来确定哪一层来消费这个事件。传递过程中，都能收到MotionEvent.ACTION_DOWN事件，而只有确认mFirstTouchTarget后的那个控件，才能收到全部的事件。]]></description><category></category></item><item><title><![CDATA[Android电量优化，让你的手机续航更持久]]></title><link>https://blog.youkuaiyun.com/a_lwh____/article/details/139427730</link><guid>https://blog.youkuaiyun.com/a_lwh____/article/details/139427730</guid><author>a_lwh____</author><pubDate>Tue, 04 Jun 2024 01:04:37 +0800</pubDate><description><![CDATA[Screen屏幕是非常耗电的一个硬件，不要问我为什么。屏幕主要有LCD和OLED两种。LCD屏幕白色光线从屏幕背后的灯管发出，尽管屏幕显示黑屏，依旧耗电，这种屏幕逐渐被淘汰，如果你翻出个早点的功能机，或许能看到。那么大部分Android手机都是OLED的屏幕，每个像素点都是独立的发光单元，屏幕黑屏时，所有像素都不发光。有必要时，让屏幕息屏很重要，当然手机也有自动息屏的时间设置，这个不太需要我们操心。Radio数据网络和Wi-Fi无线网络网络也是非常耗电的，其中又以数据网络的耗电更多于Wi-Fi的耗电。]]></description><category></category></item><item><title><![CDATA[Android约束布局ConstraintLayout的使用]]></title><link>https://blog.youkuaiyun.com/a_lwh____/article/details/139427691</link><guid>https://blog.youkuaiyun.com/a_lwh____/article/details/139427691</guid><author>a_lwh____</author><pubDate>Tue, 04 Jun 2024 00:57:45 +0800</pubDate><description><![CDATA[Android引入约束布局的目的是为了减少布局层级的嵌套，从而提升渲染性能。约束布局综合线性布局、相对布局、帧布局的部分功能，缺点也很明显，就是可能要多写几行代码。所以约束布局使用时，还得综合考虑代码量。提升性能也并不一定非得使用约束布局，也可以在ViewGroup上dispatchDraw。你需要根据业务的具体情况选择最合适的实现方式。我知道很多人一开始很不习惯使用约束布局，但既然你诚心诚意问我怎么使用了？于是我就大发慈悲告诉你怎么使用呗。]]></description><category></category></item><item><title><![CDATA[Flutter开发 - 使用GetX框架实现类似MVVM架构]]></title><link>https://blog.youkuaiyun.com/a_lwh____/article/details/139400355</link><guid>https://blog.youkuaiyun.com/a_lwh____/article/details/139400355</guid><author>a_lwh____</author><pubDate>Mon, 03 Jun 2024 00:30:34 +0800</pubDate><description><![CDATA[这个MyApp就是我们程序的入口，相当于Application类，其实最主要是因为在main()方法中调了一个runApp()方法，然后传入了我们的第一个视图。GetPage里面的page指定了这个页面的视图Widget，然后使用binding指定依赖注入，简单说就是不用在使用的时候new对象，直接注入到属性中。databinding里面的ObservableField类可以帮助我们很好的实现数据的双向绑定，通过调用它 的get()方法就可以拿到值了，在xml中也可以很方便地使用其值。]]></description><category></category></item><item><title><![CDATA[Gradle如何发布一个Android开源框架到JitPack]]></title><link>https://blog.youkuaiyun.com/a_lwh____/article/details/139400333</link><guid>https://blog.youkuaiyun.com/a_lwh____/article/details/139400333</guid><author>a_lwh____</author><pubDate>Mon, 03 Jun 2024 00:28:03 +0800</pubDate><description><![CDATA[作为一个开发开源框架的Android工程师，一定要有一种精益求精的精神，在一个比较小的功能上尽可能做到完美，把各种情况都考虑到位。代码越多，越容易出bug，而开源框架是要给很多人使用的，别人不太可能使用你有很多bug的框架，除非那人本来也不太懂。新版本的gradle的发布我采用kts脚本，当然这个不是必须的，只不过kts有代码提示罢了。你别看代码很简单，但是网上的资料大多都有各种各样的问题，找到可以让你编译过的并不容易。然后把测试相关的一些东西去掉，只留纯净的你的框架的代码。剩下的跟旧版本的发布方式类似。]]></description><category></category></item><item><title><![CDATA[如何使用Dora SDK完成Fragment流式切换和非流式切换]]></title><link>https://blog.youkuaiyun.com/a_lwh____/article/details/139382361</link><guid>https://blog.youkuaiyun.com/a_lwh____/article/details/139382361</guid><author>a_lwh____</author><pubDate>Sun, 02 Jun 2024 01:02:56 +0800</pubDate><description><![CDATA[我想大家对Fragment都不陌生，它作为界面碎片被使用在Activity中，如果只是更换Activity中的一小部分界面，是没有必要再重新打开一个新的Activity的。有时，即使要更换完整的UI布局，也可以使用Fragment来切换界面。]]></description><category></category></item><item><title><![CDATA[Android Studio插件开发 - Dora SDK的IDE插件]]></title><link>https://blog.youkuaiyun.com/a_lwh____/article/details/139382318</link><guid>https://blog.youkuaiyun.com/a_lwh____/article/details/139382318</guid><author>a_lwh____</author><pubDate>Sun, 02 Jun 2024 00:48:41 +0800</pubDate><description><![CDATA[Android Studio是一种常用的集成开发环境（IDE），用于开发Android应用程序。它提供了许多功能和工具，可以帮助开发人员更轻松地构建和调试Android应用程序。确保你已经安装了最新版本的Android Studio。你可以从官方网站（https://developer.android.com/studio）下载并安装它。了解Android Studio插件的基本结构和原理。]]></description><category></category></item><item><title><![CDATA[Dora全家桶到底是怎样的味道]]></title><link>https://blog.youkuaiyun.com/a_lwh____/article/details/139363600</link><guid>https://blog.youkuaiyun.com/a_lwh____/article/details/139363600</guid><author>a_lwh____</author><pubDate>Sat, 01 Jun 2024 00:03:39 +0800</pubDate><description><![CDATA[Android APP项目大体可以分为基础架构的开发、UI布局和接口调试，其他业务逻辑我这里无法预知，要不然我不成神了？所以我开源了三条路线的框架，dora、dview和dcache。本篇我只讲解基础架构dora是如何使用的。]]></description><category></category></item><item><title><![CDATA[如何仿一个抖音极速版领现金的进度条动画？]]></title><link>https://blog.youkuaiyun.com/a_lwh____/article/details/139363585</link><guid>https://blog.youkuaiyun.com/a_lwh____/article/details/139363585</guid><author>a_lwh____</author><pubDate>Sat, 01 Jun 2024 00:02:11 +0800</pubDate><description><![CDATA[半圆，如果是水平的情况下，我们的宽度就只要一半，相反如果是垂直的半圆，我们高度就只要一半。绘图除了需要Android的基础绘图知识外，还需要一定的数学计算的功底，比如基本的几何图形的点的计算你要清楚。这个就牵扯出我们动画的一个关键类，TypeEvaluator，这个接口可以让我们只需要指定边界值，就可以根据动画执行的时长，来动态计算出当前的渐变值。思路和灵感来自于大量源码的阅读和大量的实践。大前提就是你得先把自定义View的这些知识点系统学习一下，先保证都见过，然后才是将它们融会贯通，用的时候信手拈来。]]></description><category></category></item></channel></rss>