<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[Veer Han]]></title><description><![CDATA[追求卓越，成功就会在不经意间追上你。]]></description><link>https://blog.youkuaiyun.com/LeoLeoHan</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; LeoLeoHan]]></copyright><item><title><![CDATA[不会鸿蒙开发？零基础也能上架一个鸿蒙App！]]></title><link>https://blog.youkuaiyun.com/LeoLeoHan/article/details/165753719</link><guid>https://blog.youkuaiyun.com/LeoLeoHan/article/details/165753719</guid><author>LeoLeoHan</author><pubDate>Thu, 17 Sep 2026 17:57:51 +0800</pubDate><description><![CDATA[零基础也能上架鸿蒙App！本文手把手带你从0开始：让AI帮你查官网、装DevEco Studio、建工程、写功能，最终发布到AppGallery。以“宝贝日程表”为例，仅需一台电脑、华为账号，通过AI辅助完成环境配置、空工程创建、功能开发与真机验证。关键步骤包括：用AI读官方文档自动安装工具、创建最小可运行工程、按MVP原则实现本地保存的课程与事项管理。全程无需懂代码，只需确认权限与授权。真正实现“不会鸿蒙，也能上架”。]]></description><category></category></item><item><title><![CDATA[AI 开发真实案例完整复盘：给 App 增加宠物功能]]></title><link>https://blog.youkuaiyun.com/LeoLeoHan/article/details/164984762</link><guid>https://blog.youkuaiyun.com/LeoLeoHan/article/details/164984762</guid><author>LeoLeoHan</author><pubDate>Fri, 11 Sep 2026 13:13:32 +0800</pubDate><description><![CDATA[用 Codex 为鸿蒙 App 增加宠物功能：从网页试玩、原创角色设计，到 WebGL2 接入、原画网格变形与页面互动，复盘实际开发中的设计取舍。]]></description><category></category></item><item><title><![CDATA[AI 写代码之后，DevEco Studio 在我电脑里吃灰了]]></title><link>https://blog.youkuaiyun.com/LeoLeoHan/article/details/164603581</link><guid>https://blog.youkuaiyun.com/LeoLeoHan/article/details/164603581</guid><author>LeoLeoHan</author><pubDate>Tue, 08 Sep 2026 13:12:23 +0800</pubDate><description><![CDATA[结合宝贝日程表的鸿蒙开发经历，分享如何让 AI 读工程、拆任务、改界面、查日志和验收结果，以及从本机运行到应用上架的实践方法。]]></description><category></category></item><item><title><![CDATA[DevEco CLI 实战：鸿蒙 App「宝贝日程表」从 0 开发到正式上架]]></title><link>https://blog.youkuaiyun.com/LeoLeoHan/article/details/164340902</link><guid>https://blog.youkuaiyun.com/LeoLeoHan/article/details/164340902</guid><author>LeoLeoHan</author><pubDate>Thu, 03 Sep 2026 22:55:47 +0800</pubDate><description><![CDATA[孩子的课程、兴趣班和临时事项总散在不同地方，于是我做了「宝贝日程表」。这篇文章记录了它从功能规划、界面设计到 AppGallery 上架的过程，也整理了 DevEco CLI、MCP、一多适配和服务卡片开发中遇到的问题。]]></description><category></category></item><item><title><![CDATA[Android优化_优化全时空间APK的大小]]></title><link>https://blog.youkuaiyun.com/LeoLeoHan/article/details/93528983</link><guid>https://blog.youkuaiyun.com/LeoLeoHan/article/details/93528983</guid><author>LeoLeoHan</author><pubDate>Mon, 24 Jun 2019 21:42:43 +0800</pubDate><description><![CDATA[全时空间APK在未做大小优化之前的大小为52.9MB，经过优化后的大小为36.7MB。
未优化前的APK结构如下：

考虑到需要保证全时空间APP的稳定性，目前采用的优化步骤如下：
一、开启minifyEnabled和shrinkResources
经过此步骤，APK的大小减小为48.2MB，APK结构如下：

对比第一张图可以很明显看出dex文件的总大小和res文件夹都减小了。
二、移除未使用到...]]></description><category></category></item><item><title><![CDATA[Android wifi休眠策略]]></title><link>https://blog.youkuaiyun.com/LeoLeoHan/article/details/78318572</link><guid>https://blog.youkuaiyun.com/LeoLeoHan/article/details/78318572</guid><author>LeoLeoHan</author><pubDate>Mon, 23 Oct 2017 14:33:09 +0800</pubDate><description><![CDATA[本文转自http://blog.youkuaiyun.com/wwwwap2008/article/details/51783138最近在项目里发现一段logcat： 
W/Settings: Setting wifi_sleep_policy has moved from android.provider.Settings.System to android.provider.Settings.Global,]]></description><category></category></item><item><title><![CDATA[Android使用TextWatcher匹配email造成ANR的解决]]></title><link>https://blog.youkuaiyun.com/LeoLeoHan/article/details/77914465</link><guid>https://blog.youkuaiyun.com/LeoLeoHan/article/details/77914465</guid><author>LeoLeoHan</author><pubDate>Sat, 09 Sep 2017 12:51:11 +0800</pubDate><description><![CDATA[最近QA给我报了一个bug，说是在编辑框快速输入邮箱的时候有时会导致页面无响应。 
这个编辑框是专门输入邮箱的，所以监听了TextWatcher，每次字符的改变都会用正则判断是否是正确的邮箱，如果不是的话会显示错误提示。这里我没有考虑到用户快速的填写内容，会触发多次的afterTextChanged回调这个case，这样就会因为正则匹配次数太多造成ANR。下面我谈谈自己是怎样修复这个bug的：一]]></description><category></category></item><item><title><![CDATA[Android实现EditText的富文本编辑]]></title><link>https://blog.youkuaiyun.com/LeoLeoHan/article/details/76560093</link><guid>https://blog.youkuaiyun.com/LeoLeoHan/article/details/76560093</guid><author>LeoLeoHan</author><pubDate>Tue, 01 Aug 2017 22:07:12 +0800</pubDate><description><![CDATA[本文是我之前写的这边文章《Android图文混排－实现EditText图文混合插入上传》的升级版，除了在EditText实现了图片上传之外，还包含了视频上传、云盘文件上传、录音上传以及显示上传进度。目前应用于蜜蜂-集结号-任务模块。首先介绍一下该功能的实现效果： 
实现思路实现思路与之前介绍的稍有不同，但是依然是使用SpannableString实现的。由于这里不仅仅支持图片上传，还支持音频、视]]></description><category></category></item><item><title><![CDATA[Android 使用DrawerLayout快速实现侧滑菜单]]></title><link>https://blog.youkuaiyun.com/LeoLeoHan/article/details/51038420</link><guid>https://blog.youkuaiyun.com/LeoLeoHan/article/details/51038420</guid><author>LeoLeoHan</author><pubDate>Fri, 01 Apr 2016 17:23:14 +0800</pubDate><description><![CDATA[一、概述 DrawerLayout是一个可以方便的实现Android侧滑菜单的组件，我最近开发的项目中也有一个侧滑菜单的功能，于是DrawerLayout就派上用场了。如果你从未使用过DrawerLayout，那么本篇博客将使用一个简单的案例带你迅速掌握DrawerLayout的用法。]]></description><category></category></item><item><title><![CDATA[使用SwipeRefreshLayout和RecyclerView实现仿“简书”下拉刷新和上拉加载更多]]></title><link>https://blog.youkuaiyun.com/LeoLeoHan/article/details/50989549</link><guid>https://blog.youkuaiyun.com/LeoLeoHan/article/details/50989549</guid><author>LeoLeoHan</author><pubDate>Sat, 26 Mar 2016 23:23:01 +0800</pubDate><description><![CDATA[一、概述 我们公司目前开发的所有Android APP都是遵循iOS风格设计的，这并不是一个好现象。我决定将Android 5.x控件引入最近开发的项目中，使用RecyclerView取代以往使用的ListView、GridView，使用SwipeRefreshLayout取代pull-to-refresh第三方库，打造更符合Material Design风格的APP。本篇博客介绍的就是如何使用Swi]]></description><category></category></item><item><title><![CDATA[Android 通过ADB Wireless无线调试应用]]></title><link>https://blog.youkuaiyun.com/LeoLeoHan/article/details/50966402</link><guid>https://blog.youkuaiyun.com/LeoLeoHan/article/details/50966402</guid><author>LeoLeoHan</author><pubDate>Wed, 23 Mar 2016 20:38:50 +0800</pubDate><description><![CDATA[使用数据线调试应用难免不方便，本篇博客介绍使用ADB Wireless工具，当手机和电脑处在同一网络下，实现无线调试应用。 
ADB Wireless能够让手机用无线来取代USB连接，而使用ADB工具的前提是设备已经root。]]></description><category></category></item><item><title><![CDATA[Andriod GridView不改变背景色实现网格线效果]]></title><link>https://blog.youkuaiyun.com/LeoLeoHan/article/details/50954567</link><guid>https://blog.youkuaiyun.com/LeoLeoHan/article/details/50954567</guid><author>LeoLeoHan</author><pubDate>Tue, 22 Mar 2016 13:56:20 +0800</pubDate><description><![CDATA[项目中需要给GridView添加一个网格线，而且GridView的背景是一张完整的图片，如图所示： 
常用的方法是：
改变GridView的背景色
设置GridView水平或竖直方向的间隔
设置item的布局文件背景色
上述的方法直接改变了GridView的背景色，显然是不符合项目要求的，我在网上搜索了一下没有找到解决方案，这里给出自己的解决方案：给item的布局文件添加一个边框背景即可：<shap]]></description><category></category></item><item><title><![CDATA[Android pm命令详解]]></title><link>https://blog.youkuaiyun.com/LeoLeoHan/article/details/50917671</link><guid>https://blog.youkuaiyun.com/LeoLeoHan/article/details/50917671</guid><author>LeoLeoHan</author><pubDate>Thu, 17 Mar 2016 22:14:15 +0800</pubDate><description><![CDATA[在看相关PackageManager代码时，无意中发现Android 下提供一个pm命令，通常放在/system/bin/下。这个命令与Package有关，且非常实用。所以研究之。0. Usage：usage: pm [list|path|install|uninstall] 
       pm list packages [-f] 
       pm list permission-group]]></description><category></category></item><item><title><![CDATA[Android Gson使用入门及GsonFormat插件的使用]]></title><link>https://blog.youkuaiyun.com/LeoLeoHan/article/details/50886707</link><guid>https://blog.youkuaiyun.com/LeoLeoHan/article/details/50886707</guid><author>LeoLeoHan</author><pubDate>Mon, 14 Mar 2016 15:20:29 +0800</pubDate><description><![CDATA[Gson 是 Google 官方提供的用来在 Java 对象和 JSON 之间进行互相转换的Java类库。 
我之前在使用Eclipse开发Android的时候，并没有经常使用Gson，而是使用原生的JSONObject解析，最近转用Android Studio，配合该IDE里面强大的插件，使用Gson很大程度地提高了开发效率。本篇博客将介绍Gson的基本使用方法，配合实际案例体会Gson带来的便捷]]></description><category></category></item><item><title><![CDATA[Android搜索功能的案例，本地保存搜索历史记录]]></title><link>https://blog.youkuaiyun.com/LeoLeoHan/article/details/50688283</link><guid>https://blog.youkuaiyun.com/LeoLeoHan/article/details/50688283</guid><author>LeoLeoHan</author><pubDate>Thu, 18 Feb 2016 20:11:47 +0800</pubDate><description><![CDATA[同事负责开发的APP有一个搜索功能，并且需要显示搜索的历史记录，我闲暇之余帮她开发了这个功能，现把该页面抽取成一个demo分享给大家。实现效果如图所示： 
本案例实现起来很简单，所以可以直接拿来嵌入项目中使用，涉及到的知识点： 
- 数据库的增删改查操作 
- ListView和ScrollView的嵌套冲突解决 
- 监听软键盘回车按钮设置为搜索按钮 
- 使用TextWatcher( )实时筛选]]></description><category></category></item><item><title><![CDATA[Android自定义dialog中的EditText无法弹出键盘的解决]]></title><link>https://blog.youkuaiyun.com/LeoLeoHan/article/details/50513813</link><guid>https://blog.youkuaiyun.com/LeoLeoHan/article/details/50513813</guid><author>LeoLeoHan</author><pubDate>Wed, 13 Jan 2016 22:46:19 +0800</pubDate><description><![CDATA[最近我独立开发的项目《全医会》已经在内测当中了，很快将会上架到各大应用市场。之前开发的几个项目都因为一些原因没有上架还是比较遗憾的。所以，最近我心情格外的好。 
今天在做一个新项目，专为律师和客户开发的APP，其中有一个自定义对话框的需求。这个知识点其实很简单，就是下图这个效果： 
 
可是当我悠闲的写完以后才发现，自定义对话框里面嵌套的EditText根本无法获取焦点，无法弹出软键盘，郁闷，以前开]]></description><category></category></item><item><title><![CDATA[Android图文混排－实现EditText图文混合插入上传]]></title><link>https://blog.youkuaiyun.com/LeoLeoHan/article/details/50445436</link><guid>https://blog.youkuaiyun.com/LeoLeoHan/article/details/50445436</guid><author>LeoLeoHan</author><pubDate>Fri, 01 Jan 2016 17:33:04 +0800</pubDate><description><![CDATA[前段时间做了一个Android会议管理系统，项目需求涉及到EditText的图文混排，如图： 
 
在上图的”会议详情”中，需要支持文本和图片的混合插入，下图演示输入的示例： 
当会议创建完成以后，保存数据到服务器，然后查看刚刚创建好的会议，如图： 
一、明确需求 
首先，点击”会议详情”文本框中，正常输入文本，然后点击左下角的图片图标，进入系统的相册用来选择一张图片并插入到文本框中，你还可以将光标]]></description><category></category></item><item><title><![CDATA[Mac安装Genymotion出现unable to load virtualbox engine的解决]]></title><link>https://blog.youkuaiyun.com/LeoLeoHan/article/details/50414517</link><guid>https://blog.youkuaiyun.com/LeoLeoHan/article/details/50414517</guid><author>LeoLeoHan</author><pubDate>Sun, 27 Dec 2015 22:47:50 +0800</pubDate><description><![CDATA[Mac上安装genymotion后，运行该程序弹出该错误： 
 
原因是我的Mac上没有安装VirtualBox，通过以下链接下载安装VirtualBox后即可正常运行该软件。 
VirtualBox for Mac最新版下载地址 
注意：VirtualBox版本过旧也有可能报错。 
下面Genymotion模拟器可以正常运行了，enjoy it.]]></description><category></category></item><item><title><![CDATA[使用Android Accessibility实现免Root自动批量安装功能]]></title><link>https://blog.youkuaiyun.com/LeoLeoHan/article/details/50218013</link><guid>https://blog.youkuaiyun.com/LeoLeoHan/article/details/50218013</guid><author>LeoLeoHan</author><pubDate>Tue, 08 Dec 2015 14:01:03 +0800</pubDate><description><![CDATA[对于国内Android设备，应用的自动批量安装/更新一直是一个痛点，在之前，第三方应用商店通常要求设备Root，然后调用系统的PackageManagerService命令行来实现后台安装。最近，豌豆荚利用Android Accessibility（辅助功能）在业内率先实现了免Root自动批量安装功能。

这个功能实现的原理是，在后台批量下载应用后，调用系统的PackageInstaller，]]></description><category></category></item><item><title><![CDATA[Android签名打包出现Export aborted because fatal lint errors were found的解决]]></title><link>https://blog.youkuaiyun.com/LeoLeoHan/article/details/48782327</link><guid>https://blog.youkuaiyun.com/LeoLeoHan/article/details/48782327</guid><author>LeoLeoHan</author><pubDate>Mon, 28 Sep 2015 11:11:30 +0800</pubDate><description><![CDATA[前些天重现安装了Eclipse，在签名打包APK时出现了如下错误： 
Export aborted because fatal lint errors were found. These are listed in the Lint View. Either fix these before running Export again,or turn off”Run full error check]]></description><category></category></item></channel></rss>