<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[Hmy的博客]]></title><description><![CDATA[想学AI的Android]]></description><link>https://blog.youkuaiyun.com/u014040795</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; u014040795]]></copyright><item><title><![CDATA[Python/Numpy二维数组的螺旋遍历（内螺旋）]]></title><link>https://blog.youkuaiyun.com/u014040795/article/details/109503670</link><guid>https://blog.youkuaiyun.com/u014040795/article/details/109503670</guid><author>u014040795</author><pubDate>Thu, 05 Nov 2020 09:32:58 +0800</pubDate><description><![CDATA[二维数组的螺旋遍历，默认从数组的中心点螺旋向外的遍历。

支持定义螺旋遍历的起点。
支持定义螺旋遍历的长度。

对于纵列非1:1的二维数组或自定义起点的螺旋遍历，只会返回有效的节点数据。]]></description><category></category></item><item><title><![CDATA[【Android 】UI优化策略]]></title><link>https://blog.youkuaiyun.com/u014040795/article/details/107783194</link><guid>https://blog.youkuaiyun.com/u014040795/article/details/107783194</guid><author>u014040795</author><pubDate>Thu, 13 Aug 2020 17:21:08 +0800</pubDate><description><![CDATA[获取Android设备的分辨率：


dumpsys window displays |head -n 3


]]></description><category></category></item><item><title><![CDATA[【Android】Throwable、Exception、Error的关系]]></title><link>https://blog.youkuaiyun.com/u014040795/article/details/107390528</link><guid>https://blog.youkuaiyun.com/u014040795/article/details/107390528</guid><author>u014040795</author><pubDate>Thu, 16 Jul 2020 19:55:01 +0800</pubDate><description><![CDATA[https://blog.youkuaiyun.com/hl_java/article/details/76837141?locationNum=4&amp;fps=1
]]></description><category></category></item><item><title><![CDATA[【Android】数据结构  时间复杂度、空间复杂度]]></title><link>https://blog.youkuaiyun.com/u014040795/article/details/107389496</link><guid>https://blog.youkuaiyun.com/u014040795/article/details/107389496</guid><author>u014040795</author><pubDate>Thu, 16 Jul 2020 19:53:54 +0800</pubDate><description><![CDATA[怎么分析一段代码的时间复杂度呢？三个方法：

1. 只关注循环执行次数最多的一段代码
2. 加法法则，T(n) = O(max(f(n), g(n)))
3. 乘法法则，O(f(n)) * O(g(n)) = O(f(n) * g(n))

只要算法中不存在循环，即使有成千上万行代码，时间复杂度也是O(1).

https://www.jianshu.com/p/f023e1fb2e2c

https://www.cnblogs.com/Auge/p/12051200.html

常见的空间复杂度一般就是O]]></description><category></category></item><item><title><![CDATA[【Android】ArrayList、LinkedList]]></title><link>https://blog.youkuaiyun.com/u014040795/article/details/107390652</link><guid>https://blog.youkuaiyun.com/u014040795/article/details/107390652</guid><author>u014040795</author><pubDate>Thu, 16 Jul 2020 19:53:14 +0800</pubDate><description><![CDATA[ArrayList
	基于数组实现，查找快：o(1)，增删慢：o(n)
		初始容量为10，扩容通过 System.arrayCopy 方法
	
	LinkedList
	基于双向链表实现，查找慢：o(n)，增删快：o(1)
		封装了队列和栈的调用
	

Q：数组与链表有什么不同？





Q：（双向）链表的优缺点？为什么查找慢、增删快？





Q：数组的优缺点？为什么查找快、增删慢？




关于ArrayList与LinkedList的实现区别分析：


public class Link...]]></description><category></category></item><item><title><![CDATA[【Android】synchronized]]></title><link>https://blog.youkuaiyun.com/u014040795/article/details/107390465</link><guid>https://blog.youkuaiyun.com/u014040795/article/details/107390465</guid><author>u014040795</author><pubDate>Thu, 16 Jul 2020 19:49:40 +0800</pubDate><description><![CDATA[Java语言的关键字，当它用来修饰一个方法或者一个代码块的时候，能够保证在同一时刻最多只有一个线程执行该段代码。
一、当两个并发线程访问同一个对象object中的这个synchronized(this)同步代码块时，一个时间内只能有一个线程得到执行。另一个线程必须等待当前线程执行完这个代码块以后才能执行该代码块。
二、然而，当一个线程访问object的一个synchronized(this)同步代码块时，另一个线程仍然可以访问该object中的非synchronized(this)同步代码块。
三、尤其关键]]></description><category></category></item><item><title><![CDATA[【Android】为什么必须在主线程中执行UI操作？]]></title><link>https://blog.youkuaiyun.com/u014040795/article/details/107369097</link><guid>https://blog.youkuaiyun.com/u014040795/article/details/107369097</guid><author>u014040795</author><pubDate>Thu, 16 Jul 2020 10:24:36 +0800</pubDate><description><![CDATA[https://blog.youkuaiyun.com/w690333243/article/details/77803812?locationNum=7&amp;fps=1

https://blog.youkuaiyun.com/LVXIANGAN/article/details/39504145?utm_medium=distribute.pc_relevant_t0.none-task-blog-BlogCommendFromMachineLearnPai2-1.nonecase&amp;depth_1-utm_sourc]]></description><category></category></item><item><title><![CDATA[【Android】Handler机制：死循环为什么不会导致ANR]]></title><link>https://blog.youkuaiyun.com/u014040795/article/details/107368859</link><guid>https://blog.youkuaiyun.com/u014040795/article/details/107368859</guid><author>u014040795</author><pubDate>Thu, 16 Jul 2020 10:21:55 +0800</pubDate><description><![CDATA[1、为什么会有ANR，其原理是什么？

以service为例，了解ANR的原理：https://blog.youkuaiyun.com/chuotao1354/article/details/100767873



2、主线程中的死循环为什么不会导致ANR？

源于linux的pipe/epoll机制，当looper拿不到更多消息时，主线程阻塞并进入休眠，释放CPU资源

https://blog.youkuaiyun.com/u013626215/article/details/88796172?utm_medium=dis.]]></description><category></category></item><item><title><![CDATA[【Android】了解ViewStub的实现]]></title><link>https://blog.youkuaiyun.com/u014040795/article/details/107375803</link><guid>https://blog.youkuaiyun.com/u014040795/article/details/107375803</guid><author>u014040795</author><pubDate>Thu, 16 Jul 2020 10:20:08 +0800</pubDate><description><![CDATA[1、为什么ViewStub对布局加载性能有优化作用？

  1.1 ViewStub的构造函数里有：

    setVisibility(GONE);
    setWillNotDraw(true);

2、ViewStub.inflate()都做了什么

  2.1 已知ViewStub携带的layoutId和其viewParent，通过LayoutInflate.inflate()获取当前ViewStub携带的View。

  2.2 已知ViewStub在其parent...]]></description><category></category></item><item><title><![CDATA[【Android】Caused by: android.view.WindowManager$BadTokenException]]></title><link>https://blog.youkuaiyun.com/u014040795/article/details/106861992</link><guid>https://blog.youkuaiyun.com/u014040795/article/details/106861992</guid><author>u014040795</author><pubDate>Fri, 19 Jun 2020 19:26:38 +0800</pubDate><description><![CDATA[System.err: Caused by: android.view.WindowManager$BadTokenException: Unable to add window android.view.ViewRootImpl$W@cd9c6dc -- permission denied for window type 2003
System.err:     at android.view.ViewRootImpl.setView(ViewRootImpl.java:789)
System.err:.]]></description><category></category></item><item><title><![CDATA[win7下 文件名太长无法删除，无法更名问题]]></title><link>https://blog.youkuaiyun.com/u014040795/article/details/79563309</link><guid>https://blog.youkuaiyun.com/u014040795/article/details/79563309</guid><author>u014040795</author><pubDate>Thu, 15 Mar 2018 09:40:46 +0800</pubDate><description><![CDATA[顺便吐槽下androidstudio，自个儿在build下生成的文件，自己居然删不掉...。。。在网上搜了一些解决方式：1、下载工具的（这个太麻烦了）2、使用命令 dir /x 将文件名简短化，再使用del删除或者rename更名（在我电脑上无效）3、使用压缩操作，顺带删除（这个是可以的）多提供点思路总是好的嘛O(∩_∩)O哈哈~...]]></description><category></category></item><item><title><![CDATA[【Android 】渐变色的波纹效果，可添加多条波纹]]></title><link>https://blog.youkuaiyun.com/u014040795/article/details/78929411</link><guid>https://blog.youkuaiyun.com/u014040795/article/details/78929411</guid><author>u014040795</author><pubDate>Fri, 29 Dec 2017 11:08:57 +0800</pubDate><description><![CDATA[/**
 * 波纹相关属性
 * Created by huomengyuan on 2017/12/29.
 */
public class WaveBean {
    private int level;//水平线
    private int waveHeight;//最高峰--最低谷的大小
    private int speed;//速度
    private float ang...]]></description><category></category></item><item><title><![CDATA[【Android】高德地图3D隐藏logo]]></title><link>https://blog.youkuaiyun.com/u014040795/article/details/52221101</link><guid>https://blog.youkuaiyun.com/u014040795/article/details/52221101</guid><author>u014040795</author><pubDate>Tue, 16 Aug 2016 15:02:11 +0800</pubDate><description><![CDATA[import android.content.Context;
import android.util.AttributeSet;
import android.view.View;
import android.view.ViewGroup;
import android.view.ViewTreeObserver;

import com.amap.api.maps.AMapOptions;...]]></description><category></category></item><item><title><![CDATA[【Android】高德地图2D隐藏logo]]></title><link>https://blog.youkuaiyun.com/u014040795/article/details/52192757</link><guid>https://blog.youkuaiyun.com/u014040795/article/details/52192757</guid><author>u014040795</author><pubDate>Fri, 12 Aug 2016 16:17:44 +0800</pubDate><description><![CDATA[import android.content.Context;
import android.util.AttributeSet;
import android.view.View;
import android.view.ViewGroup;
import android.view.ViewTreeObserver;

import com.amap.api.maps2d.AM...]]></description><category></category></item><item><title><![CDATA[【Android】自定义控件-截屏当前界面]]></title><link>https://blog.youkuaiyun.com/u014040795/article/details/52191688</link><guid>https://blog.youkuaiyun.com/u014040795/article/details/52191688</guid><author>u014040795</author><pubDate>Fri, 12 Aug 2016 14:55:52 +0800</pubDate><description><![CDATA[自定义控件ScreenShotView,作为根布局，调用相关方法将其子View的截图处理。]]></description><category></category></item><item><title><![CDATA[科大讯飞语音合成，pcm转wav]]></title><link>https://blog.youkuaiyun.com/u014040795/article/details/52188978</link><guid>https://blog.youkuaiyun.com/u014040795/article/details/52188978</guid><author>u014040795</author><pubDate>Fri, 12 Aug 2016 09:56:18 +0800</pubDate><description><![CDATA[科大讯飞语音合成文件，pcm转wav]]></description><category></category></item><item><title><![CDATA[【Android】ListView添加FooterView再remove掉，会留下空白位置]]></title><link>https://blog.youkuaiyun.com/u014040795/article/details/52188921</link><guid>https://blog.youkuaiyun.com/u014040795/article/details/52188921</guid><author>u014040795</author><pubDate>Fri, 12 Aug 2016 09:50:37 +0800</pubDate><description><![CDATA[在使用ListView的footer的过程中，如果需要动态的显示和隐藏footer的话，需要给footer添加一个layout或者是父级的view，通过控制父级view的显隐来动态显示或隐藏footer。]]></description><category></category></item></channel></rss>