<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[github_2011的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/github_2011</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; github_2011]]></copyright><item><title><![CDATA[Android debug调试]]></title><link>https://blog.youkuaiyun.com/github_2011/article/details/122271968</link><guid>https://blog.youkuaiyun.com/github_2011/article/details/122271968</guid><author>github_2011</author><pubDate>Sat, 01 Jan 2022 22:57:04 +0800</pubDate><description><![CDATA[1. 准备工作

准备工作，为了防止调试过程中应用被系统AMS干掉，先把开发者选项中的【显示所有应用程序无响应】开关打开，不打开的情况下断点调试过程中应用进程很容易挂掉。





不同厂商机型该开关名称不完全相同，但是大致都是这个意思，去开发者选项，应用相关的部分可以找到。


...]]></description><category></category></item><item><title><![CDATA[java 枚举]]></title><link>https://blog.youkuaiyun.com/github_2011/article/details/117391019</link><guid>https://blog.youkuaiyun.com/github_2011/article/details/117391019</guid><author>github_2011</author><pubDate>Sat, 29 May 2021 23:48:58 +0800</pubDate><description><![CDATA[java 5引入了枚举，enum和class以及interface属于同级别的存在，我们在开发中使用类和接口比较多，使用枚举的情况比较少，下面介绍一下枚举。

枚举是将所有可能的情况一一列举出来，说明要描述的对象个数是有限的，例如：一年有12个月，一周有7天等。

1. java中枚举的定义

java中使用enum关键字定义枚举类，枚举类的实例对象要求一一罗列出来，对象间用“,”隔开，最后一个对象建议用“;”结束。可以有构造方法，必须是私有的，默认也是私有的，可以像其它类一样定义方法，成员变量，定义抽象方]]></description><category></category></item><item><title><![CDATA[systrace抓取方式]]></title><link>https://blog.youkuaiyun.com/github_2011/article/details/116894259</link><guid>https://blog.youkuaiyun.com/github_2011/article/details/116894259</guid><author>github_2011</author><pubDate>Sun, 16 May 2021 16:56:57 +0800</pubDate><description><![CDATA[1. Android Device Monitor

Android SDK安装目录，tools文件夹里面有monitor启动方式，双击monitor.bat启动



在android device monitor窗口中点击systrace图标即可开始抓取



抓取配置设置一下，点击ok就可以开始抓取了



点击ok之后，赶快操作手机复现问题，抓取后的trace.html文件可以直接双击打开

2. “系统跟踪”应用

“系统跟踪”应用是一款用于将设备活动保存到跟踪文件的 Android 工具。在搭载]]></description><category></category></item><item><title><![CDATA[一次遍历，从一个单向链表中删除倒数第n个节点]]></title><link>https://blog.youkuaiyun.com/github_2011/article/details/115150951</link><guid>https://blog.youkuaiyun.com/github_2011/article/details/115150951</guid><author>github_2011</author><pubDate>Tue, 23 Mar 2021 23:31:06 +0800</pubDate><description><![CDATA[今天下午腾讯面试考了一道算法题：要求从一个单向链表中删除倒数第n个节点，要求最多只能遍历链表一遍。

面试时我只是给出了思路，晚上画图编码归纳整理记录一下。



思路在上图已经表达的很明确了，其实解题的关键点是利用好n，我们把n当作一把尺子从链表头移动到链表尾后，尺子的左端指的就是我们要删除的倒数第n个节点。

下面贴一下代码实现：


    /**
     * @param head 链表头节点
     * @param n 要删除的倒数第n个节点，数字n
     * @return 删除倒数第]]></description><category></category></item><item><title><![CDATA[Android Studio Build Output控制台输出乱码解决]]></title><link>https://blog.youkuaiyun.com/github_2011/article/details/109135258</link><guid>https://blog.youkuaiyun.com/github_2011/article/details/109135258</guid><author>github_2011</author><pubDate>Sat, 17 Oct 2020 17:15:05 +0800</pubDate><description><![CDATA[Android Studio版本升级到4.0之后，出现Build Output控制台输出乱码的现象。该情况在Android Studio版本3.6及以上就会出现。

解决方法：



点击Android Studio 菜单栏Help 下拉菜单找到 Edit Custom VM Options...选项。



打开studio64.exe.vmoptions 文件，输入


-Dfile.encoding=UTF-8

关闭studio，重新打开即可。

studio64.exe.vmoptions 文件所]]></description><category></category></item><item><title><![CDATA[Failed to resolve: com.android.support:appcompat-v7:25.3.0]]></title><link>https://blog.youkuaiyun.com/github_2011/article/details/107730061</link><guid>https://blog.youkuaiyun.com/github_2011/article/details/107730061</guid><author>github_2011</author><pubDate>Sat, 01 Aug 2020 14:20:37 +0800</pubDate><description><![CDATA[问题场景：Android Studio版本升级之后，Build之前正常的项目失败（用2.2.3版本正常编译的项目使用4.0.1版本的studio编译失败）。

报错如下：

Failed to resolve: com.android.support:appcompat-v7:25.3.0
Add Google Maven repository and sync project
Show in Project Structure dialog
Affected Modules: app
根据提示需要添加go]]></description><category></category></item><item><title><![CDATA[Android开发中你是怎么查看sqlite数据库的]]></title><link>https://blog.youkuaiyun.com/github_2011/article/details/106982426</link><guid>https://blog.youkuaiyun.com/github_2011/article/details/106982426</guid><author>github_2011</author><pubDate>Sat, 27 Jun 2020 16:29:06 +0800</pubDate><description><![CDATA[Android内置了sqlite数据库，我们在Android开发中想看自己的应用中sqlite数据库或者想查看别的应用数据库表中都有哪些内容的时候，老铁们，你们都是怎么操作的呢？

下面介绍几种比较通用的查看数据库的方式。

1. 使用Android Studio中的插件查看数据库，例如SQLScout。



安装好SQLScout插件之后，在View → Tool Windows → 可以找到 SQLite Explorer



我们想查看某个应用的数据库文件，怎么操作呢？

应用数据库文件目录 da]]></description><category></category></item><item><title><![CDATA[Android Studio生成patch和使用patch]]></title><link>https://blog.youkuaiyun.com/github_2011/article/details/105753197</link><guid>https://blog.youkuaiyun.com/github_2011/article/details/105753197</guid><author>github_2011</author><pubDate>Sat, 25 Apr 2020 17:44:56 +0800</pubDate><description><![CDATA[1. 生成patch





选择想保存的patch文件的位置，点击ok保存patch文件。

至此patch文件已经生成了（打patch成功了）。

2. 使用patch




]]></description><category></category></item><item><title><![CDATA[Android多线程操作操作对象出现空指针问题]]></title><link>https://blog.youkuaiyun.com/github_2011/article/details/103691588</link><guid>https://blog.youkuaiyun.com/github_2011/article/details/103691588</guid><author>github_2011</author><pubDate>Wed, 25 Dec 2019 00:28:04 +0800</pubDate><description><![CDATA[在android中经常会有一些多线程操作同一对象的问题，经常会发生空指针的情况，尤其是跑monkey测试时。

下面写点伪代码举例说明一下：


//已知mHandler为成员变量；
if (mHandler != null) {
    mHandler.xxx();
    mHandler.yyy();
}

上面的代码，大家都很熟悉，测试跑monkey出现了NullPointerExcep...]]></description><category></category></item><item><title><![CDATA[等额本金计算公式解析]]></title><link>https://blog.youkuaiyun.com/github_2011/article/details/103186573</link><guid>https://blog.youkuaiyun.com/github_2011/article/details/103186573</guid><author>github_2011</author><pubDate>Thu, 21 Nov 2019 18:10:53 +0800</pubDate><description><![CDATA[等额本金是一种贷款的还款方式，因其把贷款总额在还款期内等额划分而得名。每月偿还同等数额的本金和剩余贷款在该月产生的利息。

等额本金每月还款由两部分组成（两部分加在一起）

1.固定数额的本金（贷款总额/贷款月数）；

2.剩余贷款在该月产生的利息（（贷款总额 -已还累计本金）*月利率）。

下面举例详细解释这两部分

例：住房公积金贷款总额220000元，贷款月数60个月，年利率2.75...]]></description><category></category></item><item><title><![CDATA[Android正方形View]]></title><link>https://blog.youkuaiyun.com/github_2011/article/details/103082082</link><guid>https://blog.youkuaiyun.com/github_2011/article/details/103082082</guid><author>github_2011</author><pubDate>Fri, 15 Nov 2019 14:34:09 +0800</pubDate><description><![CDATA[在Android开发中有时候我们需要方形的View，即宽高相等的View，一般需要正方形的ImageView的情形可能会更多一些。

下面介绍自定义正方形的View（ImageVIew也是一样）。

定义一个SquareView继承View，重写构造方法。重点是重写onMeasure方法。


@Override
    protected void onMeasure(int widthMeas...]]></description><category></category></item><item><title><![CDATA[Android AsyncTask 深度解析]]></title><link>https://blog.youkuaiyun.com/github_2011/article/details/55654569</link><guid>https://blog.youkuaiyun.com/github_2011/article/details/55654569</guid><author>github_2011</author><pubDate>Thu, 17 Oct 2019 16:04:42 +0800</pubDate><description><![CDATA[Android 中耗时操作是在子线程中完成的，子线程不能更新UI，于是便出现了大家熟悉的异步消息处理机制Handler，Handler把在子线程中创建的Message对象发送到消息队列中，经由Looper轮询取出再交由Handler中handleMessage()方法处理。Handler机制完美解决了子线程中有数据却不能更新UI的问题，但是创建Handler对象、重写handleMessage()...]]></description><category></category></item><item><title><![CDATA[Android获取App当前页面的Activity名称]]></title><link>https://blog.youkuaiyun.com/github_2011/article/details/102554727</link><guid>https://blog.youkuaiyun.com/github_2011/article/details/102554727</guid><author>github_2011</author><pubDate>Mon, 14 Oct 2019 19:46:12 +0800</pubDate><description><![CDATA[Android开发过程中我们经常会有这样的需求：想知道某个App的某个页面的Activity是什么？

方法1.adb命令获取该页面的名称

adb shell "dumpsys window | grep mCurrentFocus"

adb命令获取比较简单直接（对于获取单个页面比较方便）

方法2. Androidstudio 的Layout Inspector获取

打开android...]]></description><category></category></item><item><title><![CDATA[钉海神针软件安装时提示解析安装包错误]]></title><link>https://blog.youkuaiyun.com/github_2011/article/details/86541005</link><guid>https://blog.youkuaiyun.com/github_2011/article/details/86541005</guid><author>github_2011</author><pubDate>Fri, 18 Jan 2019 15:53:50 +0800</pubDate><description><![CDATA[钉海神针软件是一款自动打卡神器，定闹钟就可以自动打卡，不需要虚拟定位，也不需要root，安全稳定，是一款很不错的自动打卡工具，钉海神针软件免费试用，钉海神针点击下载 。


扫码安装钉海神针

但是有些朋友安装钉海神针发现安装错误，提示大致如下（不同机型基本类似）。



这是为什么呢？并不是钉海神针软件安装包错误，而是钉海神针软件需要安装到Android 7.0及以上系统版本的手机上，您安装钉海...]]></description><category></category></item><item><title><![CDATA[QQ邮箱授权码]]></title><link>https://blog.youkuaiyun.com/github_2011/article/details/82664560</link><guid>https://blog.youkuaiyun.com/github_2011/article/details/82664560</guid><author>github_2011</author><pubDate>Wed, 12 Sep 2018 17:38:01 +0800</pubDate><description><![CDATA[QQ邮箱大家都很熟悉，今天我们聊一聊QQ邮箱授权码。

授权码是QQ邮箱推出的，用于登录第三方客户端的专用密码。

适用于登录以下服务：POP3/IMAP/SMTP/Exchange/CardDAV/CalDAV服务。

温馨提醒：为了你的帐户安全，更改QQ密码以及独立密码会触发授权码过期，需要重新获取新的授权码登录。

我们如何获取QQ授权码呢？

下面图文并茂手把手地教您获取授权码



点击...]]></description><category></category></item><item><title><![CDATA[多选题评分算法原理]]></title><link>https://blog.youkuaiyun.com/github_2011/article/details/79482982</link><guid>https://blog.youkuaiyun.com/github_2011/article/details/79482982</guid><author>github_2011</author><pubDate>Thu, 08 Mar 2018 16:15:16 +0800</pubDate><description><![CDATA[昨天复习位运算时突然来了灵感(自己悟出了一种判断多选题对错的方法),自我感觉很巧妙,绝对是原创(不知道以前有没有人想到过),很兴奋于是整理如下：先介绍一下多选题常用评分规则：
1. 全部选对得满分;
2. 少选并且没有选错误选项得一半分;
3. 多选错选(只要选择了错误选项)不得分。下面一张图是我最简单的想法(脑子里闪出的灵感)我让ABCD与8421分别一一对应对于多选题目,它的结果共有15种(不...]]></description><category></category></item><item><title><![CDATA[Android monkey 命令详解]]></title><link>https://blog.youkuaiyun.com/github_2011/article/details/79031339</link><guid>https://blog.youkuaiyun.com/github_2011/article/details/79031339</guid><author>github_2011</author><pubDate>Thu, 11 Jan 2018 17:18:25 +0800</pubDate><description><![CDATA[monkey 是一个运行在模拟器或者Android设备中可以产生类似用户点击、触摸、手势以及一些系统级的伪随机事件流的程序。
我们可以通过命令让monkey向模拟器或者Android设备发送伪随机事件流来对我们开发的App进行压力测试。
monkey的基本用法：
adb shell monkey [options] adb shell monkey 为固定语句， 这里是指让monkey向系统发]]></description><category></category></item><item><title><![CDATA[Android 8.0安装apk]]></title><link>https://blog.youkuaiyun.com/github_2011/article/details/78589514</link><guid>https://blog.youkuaiyun.com/github_2011/article/details/78589514</guid><author>github_2011</author><pubDate>Tue, 21 Nov 2017 16:38:50 +0800</pubDate><description><![CDATA[前一段时间在做App版本更新时，使用Android 8.0的手机测试发现一个问题：安装包下载完成之后，屏幕闪了一下并没有跳转到安装界面，使用8.0以下的手机并没有这个问题。
Android 8.0 Oreo 中，Google 移除掉了容易被滥用的“允许位置来源”应用的开关，在安装 Play Store 之外的第三方来源的 Android 应用的时候，竟然没有了“允许未知来源”的检查框，如果你还是]]></description><category></category></item><item><title><![CDATA[求丑数(判断一个整数是否是丑数)]]></title><link>https://blog.youkuaiyun.com/github_2011/article/details/78127949</link><guid>https://blog.youkuaiyun.com/github_2011/article/details/78127949</guid><author>github_2011</author><pubDate>Thu, 28 Sep 2017 20:45:49 +0800</pubDate><description><![CDATA[昨天面试时遇到一道上机题：我们把只包含因子2、3和5的数称作丑数(Ugly Number)。例如6、8都是丑数，但14不是，因为它包含因子7。习惯上我们把1当作是第一个丑数。
定义一个方法判断一个整数是否为丑数。我的思路：让这个数 a 分别除以, 模以(取模,取余数)2,3,5得到商和余数
如果三个余数都不等于0 ,则该数肯定不是丑数
如果其中有一个余数为0,则用该余数对应的商(除以2,3,5得到...]]></description><category></category></item><item><title><![CDATA[Android ijkplayer的使用解析及播放器的制作]]></title><link>https://blog.youkuaiyun.com/github_2011/article/details/77385498</link><guid>https://blog.youkuaiyun.com/github_2011/article/details/77385498</guid><author>github_2011</author><pubDate>Fri, 18 Aug 2017 20:30:57 +0800</pubDate><description><![CDATA[ijkplayer是Bilibili开源的一款功能强大的播放器,支持本地网络播放,新版还支持https和直播功能。下面介绍如何快速使用这款功能强大的播放器：1. 添加so库2. 添加依赖3. 加入demo中必要的类4. 使用ijkplayer播放视频以上便是快速高效集成ijkplayer的步骤,下面分别详细介绍：1. ijkplayer官方提供的下载地址 https://github.com/Bi...]]></description><category></category></item></channel></rss>