<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[amos1993的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/amos1993</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; amos1993]]></copyright><item><title><![CDATA[Android高级工程师面试实战，您会挂么？]]></title><link>https://blog.youkuaiyun.com/amos1993/article/details/101372516</link><guid>https://blog.youkuaiyun.com/amos1993/article/details/101372516</guid><author>amos1993</author><pubDate>Tue, 19 Mar 2019 16:30:00 +0800</pubDate><description><![CDATA[xxx公司面试总结
面试形势

群聊（2个面试官+HR+自己）

面试流程

自我介绍
面试官根据你的介绍开始问
你对我们公司有什么想了解的么（复活卡，要时回到没有了也就没有了，可以让面试官给自己提一下建议）

面试题回忆，没有先后顺序

项目架构，组件化架构（他反而没问插件化）
Android 事件分发机制（问到源码调用细节）
反射怎么调用一个类的私有方法（这里也是问细节，2个方法的区...]]></description><category></category></item><item><title><![CDATA[Android热修复技术原理详解（最新最全版本）]]></title><link>https://blog.youkuaiyun.com/amos1993/article/details/101372509</link><guid>https://blog.youkuaiyun.com/amos1993/article/details/101372509</guid><author>amos1993</author><pubDate>Sun, 11 Mar 2018 13:43:00 +0800</pubDate><description><![CDATA[本文框架

什么是热修复？
热修复框架分类
技术原理及特点
Tinker框架解析
各框架对比图
总结

  通过阅读本文，你会对热修复技术有更深的认知，本文会列出各类框架的优缺点以及技术原理，文章末尾简单描述一下Tinker的框架结构。
一、什么是热修复？
正常开发流程

热修复开发流程

热修复优势

修复什么？

二、热修复框架分类
现状：百花齐放百家争鸣

简单分类

更合理的分类...]]></description><category></category></item><item><title><![CDATA[Android热修复框架之优逆势分析（Hotfix）]]></title><link>https://blog.youkuaiyun.com/amos1993/article/details/101372494</link><guid>https://blog.youkuaiyun.com/amos1993/article/details/101372494</guid><author>amos1993</author><pubDate>Fri, 19 Jan 2018 18:06:00 +0800</pubDate><description><![CDATA[重新整理了一篇更详细的，请移步 Android热修复技术原理
Android平台出现了一些优秀的热更新方案，主要可以分为4类：

基于Instant Run 热插拔方案：美团的Robust（实时修复）

  Robust插件对每个产品代码的每个函数都在编译打包阶段自动的插入了一段代码，对方法进行了Hook，类似AOP的方式。

基于multidex的热修复方案：代表有Qzone的超级补丁...]]></description><category></category></item><item><title><![CDATA[屏幕旋转时调用PopupWindow update方法更新位置失效的问题及解决方案]]></title><link>https://blog.youkuaiyun.com/amos1993/article/details/101372492</link><guid>https://blog.youkuaiyun.com/amos1993/article/details/101372492</guid><author>amos1993</author><pubDate>Tue, 12 Dec 2017 20:30:00 +0800</pubDate><description><![CDATA[   接到一个博友的反馈，在屏幕旋转时调用 PopupWindow 的 update 方法失效。使用场景如下：在一个 Activity 中监听屏幕旋转事件，在Activity主布局文件中有个按钮点击弹出一个 PopupWindow，另外在主布局文件中有个
ListView。测试结果发现：如果 ListView 设置为可见（visibile）的话，屏幕旋转时调用的 update 方法无效，...]]></description><category></category></item><item><title><![CDATA[快速搭建一个本地的FTP服务器]]></title><link>https://blog.youkuaiyun.com/amos1993/article/details/101372506</link><guid>https://blog.youkuaiyun.com/amos1993/article/details/101372506</guid><author>amos1993</author><pubDate>Wed, 06 Dec 2017 12:09:00 +0800</pubDate><description><![CDATA[快速搭建一个本地的FTP服务器
  如果需要开发FTP文件上传下载功能，那么需要在本机上搭建一个本地FTP服务器，方便调试。
第一步：配置IIS Web服务器
1.1 控制面板中找到“程序”并打开

1.2 程序界面找到“启用或关闭Windows功能”并打开

1.3 上面两步也可以简化为一步：按【Win + R】快捷键打开运行对话框，输入“optionalfeatures”后，按回车键...]]></description><category></category></item><item><title><![CDATA[Android性能优化之启动速度优化]]></title><link>https://blog.youkuaiyun.com/amos1993/article/details/101372488</link><guid>https://blog.youkuaiyun.com/amos1993/article/details/101372488</guid><author>amos1993</author><pubDate>Tue, 24 Oct 2017 20:19:00 +0800</pubDate><description><![CDATA[Android性能优化之启动速度优化
  Android app 启动速度优化，首先谈谈为什么会走到优化这一步，如果一开始创建 app 项目的时候就把这个启动速度考虑进去，那么肯定就不需要重新再来优化一遍了。这是因为在移动互联网时代，大家都追求快，什么功能都是先做出来再说，其他的可以先不考虑，先占据先机，或者验证是否值得做。那为什么要这么做呢？我个人的观点有以下几点

如果 app 不能...]]></description><category></category></item><item><title><![CDATA[Android辅助功能原理与基本使用详解-AccessibilityService]]></title><link>https://blog.youkuaiyun.com/amos1993/article/details/101372503</link><guid>https://blog.youkuaiyun.com/amos1993/article/details/101372503</guid><author>amos1993</author><pubDate>Wed, 30 Aug 2017 22:46:00 +0800</pubDate><description><![CDATA[辅助功能原理与基本使用详解
本文主要介绍辅助功能的使用

辅助功能基本原理
辅助功能基本配置和框架搭建
辅助功能实战解析

一、辅助功能基本原理
  辅助功能（AccessibilityService）其实是一个Android系统提供给的一种服务，本身是继承Service类的。这个服务提供了增强的用户界面，旨在帮助残障人士或者可能暂时无法与设备充分交互的人们。
  从开发者的角度看，其实...]]></description><category></category></item><item><title><![CDATA[Android高效内存之让你的图片省内存]]></title><link>https://blog.youkuaiyun.com/amos1993/article/details/101372484</link><guid>https://blog.youkuaiyun.com/amos1993/article/details/101372484</guid><author>amos1993</author><pubDate>Fri, 28 Jul 2017 12:20:00 +0800</pubDate><description><![CDATA[Android高效内存之让你的图片省内存
 在做内存优化的时候，我们发现除了解决内存泄露问题，剩下的就只有想办法减少真实的内存占用。而在App中，大部分内存可能被我们图片占用了，所以减少图片的内存占用可以带来直接的效果。
一、一张图片到底占用多少内存
　　我们先假设我们有一张图片是600 * 800像素的，图片磁盘占用空间大小假设是 100KB。
图片内存大小跟磁盘占...]]></description><category></category></item><item><title><![CDATA[AccessibilityService+WindowManager+SurfaceView开系统权限]]></title><link>https://blog.youkuaiyun.com/amos1993/article/details/101372478</link><guid>https://blog.youkuaiyun.com/amos1993/article/details/101372478</guid><author>amos1993</author><pubDate>Wed, 26 Jul 2017 22:05:00 +0800</pubDate><description><![CDATA[一种通过自动获取用户权限增强产品体验的方法
　　本文是基于辅助功能+悬浮窗+SurfaceView来实现自动获取用户权限的具体方案设计与实现。辅助功能抢红包插件相信大家并不陌生，但是微信官方不允许，但是在工具软件领域还是可以大显身手，特别是开权限。辅助功能的作用就是实现节点查找和模拟点击，而悬浮窗实现需要的蒙层遮罩效果，SurfaceView则是实现流程的过渡动画。
1、 什么是...]]></description><category></category></item><item><title><![CDATA[Android高效内存1：一张图片占用多少内存]]></title><link>https://blog.youkuaiyun.com/amos1993/article/details/101372498</link><guid>https://blog.youkuaiyun.com/amos1993/article/details/101372498</guid><author>amos1993</author><pubDate>Wed, 07 Jun 2017 21:16:00 +0800</pubDate><description><![CDATA[　　在做内存优化的时候，我们发现除了解决内存泄露问题，剩下的就只有想办法减少真实的内存占用。而在App中，大部分内存可能被我们图片占用了，所以减少图片的内存占用可以带来直接的效果。本文就简单介绍一张图片到底占用多少内存，我们先假设我们有一张图片时 600 * 800 的，图片占用空间大小假设是 100KB。另外本文知识点也是面试官喜欢问的一个点，看看自己的回答到什么级别了。
图片内存大...]]></description><category></category></item><item><title><![CDATA[Android高效内存2：让图片占用尽可能少的内存]]></title><link>https://blog.youkuaiyun.com/amos1993/article/details/101372496</link><guid>https://blog.youkuaiyun.com/amos1993/article/details/101372496</guid><author>amos1993</author><pubDate>Wed, 26 Apr 2017 18:22:00 +0800</pubDate><description><![CDATA[Android高效内存：让图片占用尽可能少的内存
一、让你的图片最小化
1.1 大图小图内存使用情况对比
大图：440 * 336    小图：220 * 168 资源目录：xhdpi
小图的高宽都是大图的1/2--&gt;小图是原图的1/4
界面效果：
 
测试设备：Coolpad   8676-M01   5.1   density=2.0
测试前准备操作：同一款设备，设置图片前后多...]]></description><category></category></item><item><title><![CDATA[Android 7.0 PopupWindow 又引入新的问题，Google工程师也不够仔细么]]></title><link>https://blog.youkuaiyun.com/amos1993/article/details/101372493</link><guid>https://blog.youkuaiyun.com/amos1993/article/details/101372493</guid><author>amos1993</author><pubDate>Thu, 23 Feb 2017 18:34:00 +0800</pubDate><description><![CDATA[Android7.0 PopupWindow的兼容问题
  Android7.0 中对 PopupWindow 这个常用的控件又做了一些改动，修复了以前遗留的一些问题的同时貌似又引入了一些问题，本文通过在7.0设备上实测并且结合源码分析，带你了解关于 PopupWindow 的相关改动。
  Android7.0 中下面两个问题解决了，这里强调一下，不是说从 Android7.0 开始才...]]></description><category></category></item><item><title><![CDATA[Android XML shape 标签使用详解（apk瘦身，减少内存好帮手）]]></title><link>https://blog.youkuaiyun.com/amos1993/article/details/101372471</link><guid>https://blog.youkuaiyun.com/amos1993/article/details/101372471</guid><author>amos1993</author><pubDate>Fri, 30 Dec 2016 19:43:00 +0800</pubDate><description><![CDATA[Android XML shape 标签使用详解
  一个android开发者肯定懂得使用 xml 定义一个 Drawable，比如定义一个 rect 或者 circle 作为一个 View 的背景。但是，也肯定也有人在能使用 Drawable 的地方选择使用一张 png 图（或者是一张 .9 图）作为 View 的背景，因为后者把问题交给 UI 设计人员去了，省事。当然，使用图片这种在...]]></description><category></category></item><item><title><![CDATA[Android指纹识别深入浅出分析到实战（6.0以下系统适配方案）]]></title><link>https://blog.youkuaiyun.com/amos1993/article/details/101372491</link><guid>https://blog.youkuaiyun.com/amos1993/article/details/101372491</guid><author>amos1993</author><pubDate>Mon, 14 Nov 2016 22:49:00 +0800</pubDate><description><![CDATA[　　指纹识别这个名词听起来并不陌生，但是实际开发过程中用得并不多。Google从Android6.0（api23）开始才提供标准指纹识别支持，并对外提供指纹识别相关的接口。本文除了能适配6.0及以上系统，主要还提供6.0以下设备适配解决方案。
指纹识别用途
大概列举几个指纹识别的用途

系统解锁
应用锁
支付认证
普通的登录认证

指纹识别Google官方文档
官方标...]]></description><category></category></item><item><title><![CDATA[Android重构与设计之路，从整理提示弹窗（SmartAlertPop）开始]]></title><link>https://blog.youkuaiyun.com/amos1993/article/details/101372418</link><guid>https://blog.youkuaiyun.com/amos1993/article/details/101372418</guid><author>amos1993</author><pubDate>Thu, 03 Nov 2016 22:56:00 +0800</pubDate><description><![CDATA[　　封装一个独立弹窗Module，这里的弹窗包括普通的Dialog方式弹框和WindowManager方式弹窗。提供一种管理项目里面弹窗的方案，便于后期修改和维护。
　　首先描述一个在大项目中普遍存在的一个现象：由于项目的功能多，负责功能的人不同，当功能中需要一个普通的确定取消对话框时，大部分人都选择自己写了一个，自己new一个独立的弹窗出来。这样做的好处有以下几个：

代码逻辑独...]]></description><category></category></item><item><title><![CDATA[小萝贝控机大师工具推荐（一款在PC就能控制手机界面的工具）]]></title><link>https://blog.youkuaiyun.com/amos1993/article/details/101372463</link><guid>https://blog.youkuaiyun.com/amos1993/article/details/101372463</guid><author>amos1993</author><pubDate>Tue, 25 Oct 2016 15:16:00 +0800</pubDate><description><![CDATA[　　在一次写博客的过程中，要截取手机app上的几张图片，然后粘贴到博客里面去，不了解这个工具的时候，我就从手机上截图（使用其他的截图app或者使用手机自己的截图功能），然后再传送到电脑上，然后再放到博文中，觉得很繁琐，要是有一个能够与手机交互的PC端工具那不就很方便了么，于是就搜索了一下，无意中就发现这款app，个人觉得很实用，体验上也还不错，所以推荐给读者使用。

app名称：小...]]></description><category></category></item><item><title><![CDATA[不得不吐槽的Android PopupWindow的几个痛点（实现带箭头的上下文菜单遇到的坑）...]]></title><link>https://blog.youkuaiyun.com/amos1993/article/details/101372482</link><guid>https://blog.youkuaiyun.com/amos1993/article/details/101372482</guid><author>amos1993</author><pubDate>Sun, 09 Oct 2016 22:20:00 +0800</pubDate><description><![CDATA[　　说到PopupWindow，我个人感觉是又爱又恨，没有深入使用之前总觉得这个东西应该很简单，很好用，但是真正使用PopupWindow实现一些效果的时候总会遇到一些问题，但是即便是人家的api有问题，作为程序员也没有办法，只能去想办法去补救。
下面是我在使用过程中发现的关于PopupWindow的几个痛点：
　　痛点一：不设置背景就不能响应返回键和点击外部消失的，这个我已经有一篇...]]></description><category></category></item><item><title><![CDATA[Android动画：模拟开关按钮点击打开动画（属性动画之平移动画）]]></title><link>https://blog.youkuaiyun.com/amos1993/article/details/101372461</link><guid>https://blog.youkuaiyun.com/amos1993/article/details/101372461</guid><author>amos1993</author><pubDate>Sun, 04 Sep 2016 23:43:00 +0800</pubDate><description><![CDATA[　　在Android里面，一些炫酷的动画确实是很吸引人的地方，让然看了就赏心悦目，一个好看的动画可能会提高用户对软件的使用率。另外说到动画，在Android里面支持3种动画： 逐帧动画（Frame Animation）、补间动画(Tween Animation)和属性动画(Property Animation)，至于这几种动画的区别这里不再介绍，希望开发者都能在使用的过程中体会两者的不同...]]></description><category></category></item><item><title><![CDATA[Windows下Git多账号配置，同一电脑多个ssh-key的管理]]></title><link>https://blog.youkuaiyun.com/amos1993/article/details/101372434</link><guid>https://blog.youkuaiyun.com/amos1993/article/details/101372434</guid><author>amos1993</author><pubDate>Wed, 03 Aug 2016 00:01:00 +0800</pubDate><description><![CDATA[　　这一篇文章是对上一篇文章《Git-TortoiseGit完整配置流程》的拓展，所以需要对上一篇文章有所了解，当然直接往下看也可以，其中也有一些提到一些基础的操作。
　　本文以配置github.com账号和git.oschina.net账号来逐步演示在Windows环境下配置Git多账号支持即在同一个电脑上管理多个ssh-key，对git多一分了解。
　　备注：这篇文章所有执行命令...]]></description><category></category></item><item><title><![CDATA[Android ScrollView监听滑动到顶部和底部的两种方式（你可能不知道的细节）]]></title><link>https://blog.youkuaiyun.com/amos1993/article/details/101372442</link><guid>https://blog.youkuaiyun.com/amos1993/article/details/101372442</guid><author>amos1993</author><pubDate>Tue, 26 Jul 2016 22:28:00 +0800</pubDate><description><![CDATA[Android ScrollView监听滑动到顶部和底部，虽然网上很多资料都有说，但是不全，而且有些细节没说清楚


使用场景：
1. 做一些复杂动画的时候，需要动态判断当前的ScrollView是否滚动到底部或者顶部
2. ScrollView滚动到顶部或者底部时主动触发一些操作（典型的就是滚动到底部触发自动加载操作）

两种方式：
1.onScrollChang...]]></description><category></category></item></channel></rss>