<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[Henry_Alpha的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/Henry_Alpha</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; Henry_Alpha]]></copyright><item><title><![CDATA[图片热区点击的实现]]></title><link>https://blog.youkuaiyun.com/Henry_Alpha/article/details/53442795</link><guid>https://blog.youkuaiyun.com/Henry_Alpha/article/details/53442795</guid><author>Henry_Alpha</author><pubDate>Sat, 03 Dec 2016 10:13:09 +0800</pubDate><description><![CDATA[有时我们需要根据点击图片的不同位置响应不同的事件，即通常所说的图片热区点击
1、前期准备：要实现热区点击，需要提前测量好原始图片上每块区域的边界点坐标，组成一个坐标数组，用以检测点击是否在某个区域内和绘制点击时的覆盖物
2、加载图片并计算实际显示的图片缩放比例

imageView.post(new Runnable(){
    @Override
    public void run]]></description><category></category></item><item><title><![CDATA[Android Studio相关使用方法]]></title><link>https://blog.youkuaiyun.com/Henry_Alpha/article/details/53437182</link><guid>https://blog.youkuaiyun.com/Henry_Alpha/article/details/53437182</guid><author>Henry_Alpha</author><pubDate>Fri, 02 Dec 2016 17:48:54 +0800</pubDate><description><![CDATA[1、关联源码
AS默认从当前工程最新SDK源码往下查找，有时源码不在默认位置，就需要手动关联到当前已有源码包去，下面是关联步骤：
a)到AS的数据目录.AndroidStuido2.2下找到jdk.table.xml文件，我的位置是C:\Users\Henry\.AndroidStudio2.2\config\options\jdk.table.xml
b)打开jdk.table.xml，x]]></description><category></category></item><item><title><![CDATA[网络基础]]></title><link>https://blog.youkuaiyun.com/Henry_Alpha/article/details/53403192</link><guid>https://blog.youkuaiyun.com/Henry_Alpha/article/details/53403192</guid><author>Henry_Alpha</author><pubDate>Wed, 30 Nov 2016 04:28:11 +0800</pubDate><description><![CDATA[1、一个通讯协议栈
通讯协议栈一般分为四层，自下而上分别分为：链路层，网络层（IP协议），运输层（TCP/UDP）和应用层


2、IP协议
IP协议主要规定数据传输的基本单元，格式，数据包的递交办法与协议，但其定义的传输是单向的，无法保证传输过程的完整性，因此在ip协议之上又发展出TCP协议；


3、TCP协议
TCP协议提供了一种面向连接，保证高可靠性（数据无丢失，失序，错]]></description><category></category></item><item><title><![CDATA[Android中常用的设计原则与设计模式]]></title><link>https://blog.youkuaiyun.com/Henry_Alpha/article/details/53395103</link><guid>https://blog.youkuaiyun.com/Henry_Alpha/article/details/53395103</guid><author>Henry_Alpha</author><pubDate>Tue, 29 Nov 2016 17:10:03 +0800</pubDate><description><![CDATA[1、面向对象三大特征：封装，继承和多态
2、五大基本原则：
a)单一职责原则
b)开放封闭原则
c)里氏替换原则
d)依赖倒置原则
e)良性依赖原则
2、设计模式
a)单例模式
b)Builder模式
c)观察者模式
d)策略模式
e)原型模式]]></description><category></category></item><item><title><![CDATA[Thread相关基础]]></title><link>https://blog.youkuaiyun.com/Henry_Alpha/article/details/53391650</link><guid>https://blog.youkuaiyun.com/Henry_Alpha/article/details/53391650</guid><author>Henry_Alpha</author><pubDate>Tue, 29 Nov 2016 13:36:11 +0800</pubDate><description><![CDATA[1、Thread的状态：
线程大概可分为5个状态，
1.创建状态（NEW），当Thread被New出来，还未调用start()方法之前；
2.就绪状态，当Thread对象调用start()方法之后；
3.运行状态(RUNNABLE)，当Thread对象调用start()方法开启线程并在新线程中调用执行run()方法时的状态；
4.阻塞状态(BLOCK,WAITING,TIME-WAITI]]></description><category></category></item><item><title><![CDATA[LeackCanary的使用]]></title><link>https://blog.youkuaiyun.com/Henry_Alpha/article/details/53386811</link><guid>https://blog.youkuaiyun.com/Henry_Alpha/article/details/53386811</guid><author>Henry_Alpha</author><pubDate>Tue, 29 Nov 2016 01:37:15 +0800</pubDate><description><![CDATA[1、添加依赖

1  dependencies {
2    debugCompile 'com.squareup.leakcanary:leakcanary-android:1.5'
3    releaseCompile 'com.squareup.leakcanary:leakcanary-android-no-op:1.5'
4    testCompile 'com.squareup]]></description><category></category></item><item><title><![CDATA[MAT的使用]]></title><link>https://blog.youkuaiyun.com/Henry_Alpha/article/details/53386056</link><guid>https://blog.youkuaiyun.com/Henry_Alpha/article/details/53386056</guid><author>Henry_Alpha</author><pubDate>Tue, 29 Nov 2016 01:15:18 +0800</pubDate><description><![CDATA[MAT Memory Analysis Tool 用于检测应用内存占用状况的工具。
在Android Monitor Device界面中选择需要追踪的应用程序，一次点击 Update Heap - Cause GC - Dump HPROF file 生成并保持hpprof文件。
在AS中打开hpprof文件并更改视图模式为 Package Tree View 即可根据包名找到我们的应用程序并]]></description><category></category></item><item><title><![CDATA[Android Studio开发工具异常与解决方案收集]]></title><link>https://blog.youkuaiyun.com/Henry_Alpha/article/details/53385762</link><guid>https://blog.youkuaiyun.com/Henry_Alpha/article/details/53385762</guid><author>Henry_Alpha</author><pubDate>Mon, 28 Nov 2016 22:32:41 +0800</pubDate><description><![CDATA[1、运行时出现Error running app: Instant Run requires 'Tools | Android | Enable ADB integration' to be enabled.
出现原因1：Enable adb integration未启动，去Tools-Android-Enable adb integration点击启动即可，若无法启动，观察日志是否adb端口被]]></description><category></category></item><item><title><![CDATA[WebView的使用详解]]></title><link>https://blog.youkuaiyun.com/Henry_Alpha/article/details/53314294</link><guid>https://blog.youkuaiyun.com/Henry_Alpha/article/details/53314294</guid><author>Henry_Alpha</author><pubDate>Thu, 24 Nov 2016 01:08:12 +0800</pubDate><description><![CDATA[1、基本使用：
WebSetting 使用

WebSettings webSettings = webView.getSettings();

//设置WebView是否允许执行JavaScript脚本，默认false，不允许
webSettings.setJavaScriptEnabled(true);

//设置自适应屏幕宽度
webSettings.setUseWideViewPor]]></description><category></category></item><item><title><![CDATA[Android 绘图基础]]></title><link>https://blog.youkuaiyun.com/Henry_Alpha/article/details/53261329</link><guid>https://blog.youkuaiyun.com/Henry_Alpha/article/details/53261329</guid><author>Henry_Alpha</author><pubDate>Mon, 21 Nov 2016 18:46:18 +0800</pubDate><description><![CDATA[Android 绘制图形主要包括Canvas和Paint两个类，Canvas负责绘图的形状大小位置，Paint控制绘图风格，如画笔颜色，粗细，填充风格。


主要API
Canvas：
绘制弧形，扇形 : drawArc(RectF oval, Float startAngle, Float sweepAngle, boolean UserCenter, Paint paint)
Re]]></description><category></category></item><item><title><![CDATA[Android 安全细节要点，持续收集]]></title><link>https://blog.youkuaiyun.com/Henry_Alpha/article/details/53238995</link><guid>https://blog.youkuaiyun.com/Henry_Alpha/article/details/53238995</guid><author>Henry_Alpha</author><pubDate>Sun, 20 Nov 2016 07:24:49 +0800</pubDate><description><![CDATA[1、

描述：Android 2.1 以上的系统可为 App 提供应用程序数据的备份和恢复功能，该 由 AndroidMainfest.xml 文件中的 allowBackup 属性值控制，其默认值为 true。当该属性没有显式设置为 false 时,攻击者可通过 adb backup 和 adb restore
 对 App 的应用数据进行备份和恢复,从而可能获取明文存储的用户敏 感信息，]]></description><category></category></item><item><title><![CDATA[Android 隐式启动匹配原则]]></title><link>https://blog.youkuaiyun.com/Henry_Alpha/article/details/53220217</link><guid>https://blog.youkuaiyun.com/Henry_Alpha/article/details/53220217</guid><author>Henry_Alpha</author><pubDate>Fri, 18 Nov 2016 18:03:17 +0800</pubDate><description><![CDATA[1、Intent中只能包含一个Action，可以包含多个Category；
2、清单文件中一个Activity可配置多个IntentFilter, 一个IntentFilter可包含多个Action，多个Category，但是只能包含一个data；
3、Intent若含有Action，IntentFilter中包含多个Action，只要Intent中的Action与IntentFilter中的]]></description><category></category></item><item><title><![CDATA[关于Android的.so文件]]></title><link>https://blog.youkuaiyun.com/Henry_Alpha/article/details/51513941</link><guid>https://blog.youkuaiyun.com/Henry_Alpha/article/details/51513941</guid><author>Henry_Alpha</author><pubDate>Fri, 27 May 2016 11:30:31 +0800</pubDate><description><![CDATA[原文地址：http://www.androidchina.net/3380.html


Android系统目前支持以下七种不同的CPU架构：ARMv5，ARMv7 (从2010年起)，x86 (从2011年起)，MIPS (从2012年起)，ARMv8，MIPS64和x86_64 (从2014年起)，每一种都关联着一个相应的ABI。早期的Android系统几乎只支持ARMv5的CPU架构。]]></description><category></category></item><item><title><![CDATA[ADB小知识备忘]]></title><link>https://blog.youkuaiyun.com/Henry_Alpha/article/details/51500730</link><guid>https://blog.youkuaiyun.com/Henry_Alpha/article/details/51500730</guid><author>Henry_Alpha</author><pubDate>Wed, 25 May 2016 18:41:36 +0800</pubDate><description><![CDATA[1、解决端口被占用问题等需要重启ADB服务的问题

CMD命令窗口输入：adb nodaemon server 找出被占用的端口号

输入netstat -ano | findstr "端口号" 找出该端口被哪个进程占据

打开任务管理器，点击“进程“，“查看”-“选择列”，勾选PID，根据PID找到该进程并结束该进程
输入 adb start-server重启adb服务]]></description><category></category></item><item><title><![CDATA[从技术实现角度看Android UI设计]]></title><link>https://blog.youkuaiyun.com/Henry_Alpha/article/details/51473095</link><guid>https://blog.youkuaiyun.com/Henry_Alpha/article/details/51473095</guid><author>Henry_Alpha</author><pubDate>Sat, 21 May 2016 23:44:26 +0800</pubDate><description><![CDATA[一、Android 界面整体分区


如图
界面总体分为4个部分，从上自下依次为状态栏，动作栏，主内容，虚拟导航栏，其中动作栏与主内容栏是我们展示内容的区域，虚拟导航栏只有部分机型有，下面依次介绍这四个主要部分


1、状态栏(status bar)
a)所有Android机型默认都有状态栏，用来显示电池电量，网络状况，运营商等系统信息
b)状态栏可以隐藏
c)状态栏的图标和文]]></description><category></category></item><item><title><![CDATA[AS使用备忘录]]></title><link>https://blog.youkuaiyun.com/Henry_Alpha/article/details/51416236</link><guid>https://blog.youkuaiyun.com/Henry_Alpha/article/details/51416236</guid><author>Henry_Alpha</author><pubDate>Sun, 15 May 2016 11:12:02 +0800</pubDate><description><![CDATA[1、使用AS打包APK时如何忽略翻译问题
在build.gradle中做如下配置即可忽略检测：

lintOptions {
    abortOnError false
    checkReleaseBuilds false
    disable 'MissingTranslation'
}]]></description><category></category></item><item><title><![CDATA[Android属性备忘录]]></title><link>https://blog.youkuaiyun.com/Henry_Alpha/article/details/50934474</link><guid>https://blog.youkuaiyun.com/Henry_Alpha/article/details/50934474</guid><author>Henry_Alpha</author><pubDate>Sun, 20 Mar 2016 01:29:45 +0800</pubDate><description><![CDATA[1、android：exported="true|false"
四大组件都有该属性，需在清单文件配置，用于规定该组件是否能被外部程序访问，为true则可被外部程序访问，为false则不能。
为明确设置该属性情况下，如果组件含有intent-filter，则默认为true; 不含有intent-filter，则默认为false.]]></description><category></category></item><item><title><![CDATA[Android中asset文件夹和raw文件夹区别]]></title><link>https://blog.youkuaiyun.com/Henry_Alpha/article/details/50901029</link><guid>https://blog.youkuaiyun.com/Henry_Alpha/article/details/50901029</guid><author>Henry_Alpha</author><pubDate>Tue, 15 Mar 2016 23:19:05 +0800</pubDate><description><![CDATA[转自：http://blog.youkuaiyun.com/leichelle/article/details/7884052






*res/raw和assets的相同点：

1.两者目录下的文件在打包后会原封不动的保存在apk包中，不会被编译成二进制。


*res/raw和assets的不同点：
1.res/raw中的文件会被映射到R.java文件中，访问的时候直接使用资]]></description><category></category></item><item><title><![CDATA[JAVA API 被坑备忘录]]></title><link>https://blog.youkuaiyun.com/Henry_Alpha/article/details/50900874</link><guid>https://blog.youkuaiyun.com/Henry_Alpha/article/details/50900874</guid><author>Henry_Alpha</author><pubDate>Tue, 15 Mar 2016 22:53:37 +0800</pubDate><description><![CDATA[1、Math.round()理解
此方法为四舍五入，具体计算步骤为先 + 0.5 ，然后执行Math.floor()，注意Math.floor()参数为正数时舍弃小数部分，参数为负数时整数位进1，如:
Math.floor(8.9)=8;
Math.floor(-8.9)= -9;Math.round(8.9)=9;Math.round(-8.9)= -9;Math.round(11.5) =]]></description><category></category></item><item><title><![CDATA[Android 线程通信]]></title><link>https://blog.youkuaiyun.com/Henry_Alpha/article/details/50877620</link><guid>https://blog.youkuaiyun.com/Henry_Alpha/article/details/50877620</guid><author>Henry_Alpha</author><pubDate>Sun, 13 Mar 2016 14:06:58 +0800</pubDate><description><![CDATA[Android是属于单线程模型，所有的界面更新都在主线程中完成，所以主线程也叫UI线程。由于Android中特有的ANR机制，当遇到耗时操作时，我们通常需要启动工作线程来完成耗时操作，对于工作线程的执行结果需要反映到界面上时，我们就需要工作线程和主线程之间的通信，同时，主线程在特定情况下也需要向工作线程发起通信，比如点击界面上的某个按钮，改变工作线程中正在执行的操作。下面就来讲讲线程之间的通信。]]></description><category></category></item></channel></rss>