<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[Mr_Hu404的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/Mr_Hu404</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; Mr_Hu404]]></copyright><item><title><![CDATA[鸿蒙开发学习笔记-生命周期小记]]></title><link>https://blog.youkuaiyun.com/Mr_Hu404/article/details/155611319</link><guid>https://blog.youkuaiyun.com/Mr_Hu404/article/details/155611319</guid><author>Mr_Hu404</author><pubDate>Fri, 05 Dec 2025 15:47:00 +0800</pubDate><description><![CDATA[onWindowStageCreate()：UIAbility 窗口创建后触发，用于加载页面内容。aboutToAppear()：组件实例创建后，build() 执行前触发（数据初始化）。onWindowStageDestroy()：窗口销毁前触发，用于释放 UI 资源。应用生命周期 > 页面生命周期 > 组件生命周期，需根据场景选择合适层级。aboutToDisappear()：组件销毁前触发（资源释放）。show()：组件所在页面显示时触发。hide()：组件所在页面隐藏时触发。]]></description><category></category></item><item><title><![CDATA[项目中利用原生api获取经纬度笔记]]></title><link>https://blog.youkuaiyun.com/Mr_Hu404/article/details/84959116</link><guid>https://blog.youkuaiyun.com/Mr_Hu404/article/details/84959116</guid><author>Mr_Hu404</author><pubDate>Tue, 11 Dec 2018 17:52:19 +0800</pubDate><description><![CDATA[
private void getLocation() {
  System.out.println(&quot;-!!!!!!--!!!!!------&quot;);
  TelephonyManager tm = (TelephonyManager) MyApplication.getContext().getSystemService(Context.TELEPHONY_SERVICE);
  //1.获取位...]]></description><category></category></item><item><title><![CDATA[android 工程引用androidX下包出的问题]]></title><link>https://blog.youkuaiyun.com/Mr_Hu404/article/details/82343984</link><guid>https://blog.youkuaiyun.com/Mr_Hu404/article/details/82343984</guid><author>Mr_Hu404</author><pubDate>Mon, 03 Sep 2018 09:25:59 +0800</pubDate><description><![CDATA[在gradle.properties这个文件检查是否有以下代码：


android.useAndroidX=true
android.enableJetifier=true

没有的话，添加上build工程，基本解决androidX下倒包无法识别的的问题。...]]></description><category></category></item><item><title><![CDATA[解决ExpandableListView中子元素无法点击，OnChildClickListener无效]]></title><link>https://blog.youkuaiyun.com/Mr_Hu404/article/details/81002767</link><guid>https://blog.youkuaiyun.com/Mr_Hu404/article/details/81002767</guid><author>Mr_Hu404</author><pubDate>Wed, 11 Jul 2018 16:28:27 +0800</pubDate><description><![CDATA[1.让isChildSelectable方法返回true@Override
	public boolean isChildSelectable(int groupPosition, int childPosition) {
		return true;
2.在子view的布局的顶层加上android:descendantFocusability=&quot;blocksDescendants&quot;，意思是获取焦...]]></description><category></category></item><item><title><![CDATA[Android studio 3.0以上gradle打包，自定义apk名称]]></title><link>https://blog.youkuaiyun.com/Mr_Hu404/article/details/80282382</link><guid>https://blog.youkuaiyun.com/Mr_Hu404/article/details/80282382</guid><author>Mr_Hu404</author><pubDate>Fri, 11 May 2018 15:37:06 +0800</pubDate><description><![CDATA[android.applicationVariants.all { variant -&amp;gt;
    variant.outputs.all {
        outputFileName = &quot;App名称_${defaultConfig.versionName}.apk&quot;
    }
}]]></description><category></category></item><item><title><![CDATA[android开发中单例造成的内存泄漏原因及解决方案]]></title><link>https://blog.youkuaiyun.com/Mr_Hu404/article/details/78517080</link><guid>https://blog.youkuaiyun.com/Mr_Hu404/article/details/78517080</guid><author>Mr_Hu404</author><pubDate>Mon, 13 Nov 2017 09:30:28 +0800</pubDate><description><![CDATA[有一个单例是这样的：
public class SingleTon { 

    private static SingleTon singleTon; 

    private Context context; 

    private SingleTon(Context context) { 
        this.context = context; 
    } 

    p]]></description><category></category></item><item><title><![CDATA[Android中常见的内存泄漏之上下文对象]]></title><link>https://blog.youkuaiyun.com/Mr_Hu404/article/details/78315057</link><guid>https://blog.youkuaiyun.com/Mr_Hu404/article/details/78315057</guid><author>Mr_Hu404</author><pubDate>Mon, 23 Oct 2017 08:21:04 +0800</pubDate><description><![CDATA[虽然现在手机的内存不断增大，但Android为了实现不同应用间运行隔离，不至于相互影响，所以对单个应用最大可使用的内存做出了限制。限制大小在不同手机设备和ROM上都可能不一样。如Android界的第一款手机HTC G1是16MB，后来的Nexus One是32MB。所以即使手机内存不断变大，但你开发的应用可使用的内存空间并没有增大很多，这也需要你开发时多注意注意内存问题，遵从最少使用内存的原则，避]]></description><category></category></item><item><title><![CDATA[android播放视频的三种方式]]></title><link>https://blog.youkuaiyun.com/Mr_Hu404/article/details/78224967</link><guid>https://blog.youkuaiyun.com/Mr_Hu404/article/details/78224967</guid><author>Mr_Hu404</author><pubDate>Fri, 13 Oct 2017 13:36:17 +0800</pubDate><description><![CDATA[在Android中，我们有三种方式来实现视频的播放：
1、使用其自带的播放器。指定Action为ACTION_VIEW,Data为Uri，Type为其MIME类型。
2、使用VideoView来播放。在布局文件中使用VideoView结合MediaController来实现对其控制。
3、使用MediaPlayer类和SurfaceView来实现，这种方式很灵活。


1、调用其自带的]]></description><category></category></item><item><title><![CDATA[Android实现日夜间模式的三种常用方法（三）]]></title><link>https://blog.youkuaiyun.com/Mr_Hu404/article/details/77987403</link><guid>https://blog.youkuaiyun.com/Mr_Hu404/article/details/77987403</guid><author>Mr_Hu404</author><pubDate>Fri, 15 Sep 2017 08:34:25 +0800</pubDate><description><![CDATA[1、使用 setTheme 的方法让 Activity 重新设置主题；


    2、设置 Android
 Support Library 中的 UiMode 来支持日间/夜间模式的切换；


    3、通过资源 id 映射，回调自定义 ThemeChangeListener 接口来处理日间/夜间模式的切换。

第三种方式是bug最少的，不会出现闪屏现象。

三、通过资]]></description><category></category></item><item><title><![CDATA[Android实现日夜间模式的三种常用方法（二）]]></title><link>https://blog.youkuaiyun.com/Mr_Hu404/article/details/77973190</link><guid>https://blog.youkuaiyun.com/Mr_Hu404/article/details/77973190</guid><author>Mr_Hu404</author><pubDate>Thu, 14 Sep 2017 08:20:39 +0800</pubDate><description><![CDATA[1、使用 setTheme 的方法让 Activity 重新设置主题；


    2、设置 Android
 Support Library 中的 UiMode 来支持日间/夜间模式的切换；


    3、通过资源 id 映射，回调自定义 ThemeChangeListener 接口来处理日间/夜间模式的切换。



二、使用 Android Support Librar]]></description><category></category></item><item><title><![CDATA[Android实现日夜间模式的三种常用方法（一）]]></title><link>https://blog.youkuaiyun.com/Mr_Hu404/article/details/77961840</link><guid>https://blog.youkuaiyun.com/Mr_Hu404/article/details/77961840</guid><author>Mr_Hu404</author><pubDate>Wed, 13 Sep 2017 09:25:47 +0800</pubDate><description><![CDATA[1、使用 setTheme 的方法让 Activity 重新设置主题；


 2、设置 Android
 Support Library 中的 UiMode 来支持日间/夜间模式的切换；


 3、通过资源 id 映射，回调自定义 ThemeChangeListener 接口来处理日间/夜间模式的切换。









一、使用 setTheme 方法

我]]></description><category></category></item><item><title><![CDATA[HTTPS协议与HTTP协议的区别]]></title><link>https://blog.youkuaiyun.com/Mr_Hu404/article/details/77940810</link><guid>https://blog.youkuaiyun.com/Mr_Hu404/article/details/77940810</guid><author>Mr_Hu404</author><pubDate>Tue, 12 Sep 2017 08:26:36 +0800</pubDate><description><![CDATA[1.HTTPS（Secure Hypertext Transfer Protocol）安全超文本传输协议： 
  它是一个安全通信通道，它基于HTTP开发，用于在客户计算机和服务器之间交换信息，它使用安全套接字层(SSL)进行信息交换，简单来说它是HTTP的安全版。它是由Netscape开发并内置于其浏览器中，用于对数据进行压缩和解压操作，并返回网络上传送回的结果。HTTPS实际上应用了Nets]]></description><category></category></item><item><title><![CDATA[讯飞语音SDK继承简单使用]]></title><link>https://blog.youkuaiyun.com/Mr_Hu404/article/details/77870185</link><guid>https://blog.youkuaiyun.com/Mr_Hu404/article/details/77870185</guid><author>Mr_Hu404</author><pubDate>Wed, 06 Sep 2017 19:07:43 +0800</pubDate><description><![CDATA[1. 导入SDK:

将开发工具包中libs目录下的Msc.jar和armeabi(实际还有多个文件,我们全部拷贝进来,以便机型适配)复制到Android工程的libs目录




2. 在项目build.gradle文件的android{}内,配置下面一段代码,同步一下gradle文件.

sourceSets {

    main {

        jniLib]]></description><category></category></item><item><title><![CDATA[注解]]></title><link>https://blog.youkuaiyun.com/Mr_Hu404/article/details/77752608</link><guid>https://blog.youkuaiyun.com/Mr_Hu404/article/details/77752608</guid><author>Mr_Hu404</author><pubDate>Thu, 31 Aug 2017 20:38:37 +0800</pubDate><description><![CDATA[1、标记一些信息，这么说可能太抽象，那么我说，你见过@Override、@SuppressWarnings等，这类注解就是用于标识，可以用作一些检验
2、运行时动态处理，这个大家见得应该最多，在运行时拿到类的Class对象，然后遍历其方法、变量，判断有无注解声明，然后做一些事情。类似上述三篇博文中的做法。
3、编译时动态处理，这个呢？就是我们今天的主角了，一般这类注解会在编译的时候，根据注解标]]></description><category></category></item><item><title><![CDATA[Apk瘦身、混淆、加固]]></title><link>https://blog.youkuaiyun.com/Mr_Hu404/article/details/77725271</link><guid>https://blog.youkuaiyun.com/Mr_Hu404/article/details/77725271</guid><author>Mr_Hu404</author><pubDate>Wed, 30 Aug 2017 20:37:56 +0800</pubDate><description><![CDATA[一、 apk的组成元素:

resources.arsc:编译后的布局文件

assets:目录存放一些配置文件

lib:下的子目录armeabi存放一些so文件或者jar包

META-INF目录下存放的是签名信息,用来保证apk包的完整性和系统的安全

res:apk图片资源

AndroidManifest.xml:清单文件

classes.dex:是java]]></description><category></category></item><item><title><![CDATA[为什么要进行Apk瘦身？]]></title><link>https://blog.youkuaiyun.com/Mr_Hu404/article/details/77688220</link><guid>https://blog.youkuaiyun.com/Mr_Hu404/article/details/77688220</guid><author>Mr_Hu404</author><pubDate>Tue, 29 Aug 2017 21:02:52 +0800</pubDate><description><![CDATA[另一种性能优化：APK 的大小。更小的 APK 会带来更快的资源查找和反射调用。图片优化是一种重要的 APK 瘦身手段，能减少更多的掉帧现象。而且用户通常更喜欢更小的 APP，因为它们需要下载的数据更小，安装占用的空间也更小。
  
为什么 APP 的大小很重要？

一言以蔽之，性能。APP 越小，需要加载的资源也就越少，速度也就越快。在我的 APP 中，移除掉 20K 个方法之后，加载]]></description><category></category></item><item><title><![CDATA[Android--微信支付]]></title><link>https://blog.youkuaiyun.com/Mr_Hu404/article/details/77433608</link><guid>https://blog.youkuaiyun.com/Mr_Hu404/article/details/77433608</guid><author>Mr_Hu404</author><pubDate>Sun, 20 Aug 2017 20:37:33 +0800</pubDate><description><![CDATA[目录
微信支付 1
一、
创建应用 2
二、
支付集成 5
1、body字段格式
 8
三、
参考网址 12
四、
Android Studio的两种模式及签名配置 12
一、 创建应用
1> 登陆微信开放平台(https://open.weixin.qq.com/cgi-bin/index?t=home/index&lang=zh_CN&token=024e5186b4]]></description><category></category></item></channel></rss>