<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[Android_JIE的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/Android_JIE</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; Android_JIE]]></copyright><item><title><![CDATA[Android开发：精益求精，那些你所不知道的东西，我全都有！]]></title><link>https://blog.youkuaiyun.com/Android_JIE/article/details/90211289</link><guid>https://blog.youkuaiyun.com/Android_JIE/article/details/90211289</guid><author>Android_JIE</author><pubDate>Tue, 14 May 2019 17:32:57 +0800</pubDate><description><![CDATA[现在的Android面试已经不比当年，当初找工作的年代，基本上问一问四大组件的用法，最多再问一下ListView的优化技巧，一份Offer就拿到手了。而现在，新技术越来越多，大家的技术也越来越好，与之对应的招聘的要求也越来越高，现在的面试官会更喜欢关注细节，来确定你对于该方面的技术是不是真的了解。
然而正巧，我这边有很多Android高级进阶资料，有AndroidNDK，Gradle、RxJava...]]></description><category></category></item><item><title><![CDATA[安装与配置Flutter开发环境]]></title><link>https://blog.youkuaiyun.com/Android_JIE/article/details/90176856</link><guid>https://blog.youkuaiyun.com/Android_JIE/article/details/90176856</guid><author>Android_JIE</author><pubDate>Mon, 13 May 2019 17:07:36 +0800</pubDate><description><![CDATA[这篇博客我们介绍了Flutter，并且对比了H5，React Native，Flutter。
由于Flutter是跨平台的开发框架，开发一次可以同时运行在Android和iOS上面，所以我们开发时最好使用Mac系统，这样我们可以同时测试两个平台的运行效果。
本文我们就来介绍在Mac系统下安装与配置Flutter开发环境，并且运行我们的第一个Flutter应用！
为了Flutter的安装配置顺利，请...]]></description><category></category></item><item><title><![CDATA[关于2019的一些面试实战小结]]></title><link>https://blog.youkuaiyun.com/Android_JIE/article/details/90042221</link><guid>https://blog.youkuaiyun.com/Android_JIE/article/details/90042221</guid><author>Android_JIE</author><pubDate>Thu, 09 May 2019 16:58:18 +0800</pubDate><description><![CDATA[今日头条屏幕适配的原理？
1：首先计算出 density，计算公式：当前设备屏幕总宽度（单位为像素）/ 设计图总宽度（单位为 dp) = densitydensity 的意思就是 1 dp 占当前设备多少像素计算density 的原因：在布局文件中填写的是什么单位，最后都会被转化为 px，系统就是通过上面的方法，将你在项目中任何地方填写的单位都转换为 px
但是，今日头条适配方案默认项目中只能以高...]]></description><category></category></item><item><title><![CDATA[Android开发者们，又准备跳槽了？]]></title><link>https://blog.youkuaiyun.com/Android_JIE/article/details/89962693</link><guid>https://blog.youkuaiyun.com/Android_JIE/article/details/89962693</guid><author>Android_JIE</author><pubDate>Wed, 08 May 2019 17:21:24 +0800</pubDate><description><![CDATA[可能有很多朋友在做了多年技术之后都会进入一个迷茫期，对自己所负责的业务逻辑非常熟悉，但是每天就只是和各种需求和Bug打交道而已，总感觉对自身能力的提升并不大。虽然在公司里属于不可缺少的一员，但是同时又担心离开了这家公司就找不到更好的工作了。

有这种焦虑的朋友或许应该思考一下这个问题：如何提升自己在 Android 市场上的竞争力？
当你觉得进入到迷茫或者瓶颈期的时候其实更应该注重基础，也就是更加...]]></description><category></category></item><item><title><![CDATA[Android热修复原理]]></title><link>https://blog.youkuaiyun.com/Android_JIE/article/details/89847581</link><guid>https://blog.youkuaiyun.com/Android_JIE/article/details/89847581</guid><author>Android_JIE</author><pubDate>Sun, 05 May 2019 15:55:18 +0800</pubDate><description><![CDATA[一. AndFix
AndFix的原理就是方法的替换，把有bug的方法替换成补丁文件中的方法。

注：在Native层使用指针替换的方式替换bug方法，已达到修复bug的目的。
AndFix采用native hook的方式，这套方案直接使用dalvik_replaceMethod替换class中方法的实现。由于它并没有整体替换class, 而field在class中的相对地址在class加载时已确...]]></description><category></category></item><item><title><![CDATA[Android权限之动态权限]]></title><link>https://blog.youkuaiyun.com/Android_JIE/article/details/89845766</link><guid>https://blog.youkuaiyun.com/Android_JIE/article/details/89845766</guid><author>Android_JIE</author><pubDate>Sun, 05 May 2019 14:57:08 +0800</pubDate><description><![CDATA[安卓系统的权限管理机制从API 23 (也就是Android 6.0 又叫做 Android M,)之后发生了比较大的改变，在一些比较危险的权限上要求必须申请动态权限，即使你在AndroidMainfest.xml文件中申请也没有任何用，或者你可以将编译的目标版本设定这API 22，这样就可以了。但这并不是长久之计，不是吗？所以因此在这里学习一下。
动态权限需求原因
Android 6.0之前，权...]]></description><category></category></item><item><title><![CDATA[Retrofit解析]]></title><link>https://blog.youkuaiyun.com/Android_JIE/article/details/89713970</link><guid>https://blog.youkuaiyun.com/Android_JIE/article/details/89713970</guid><author>Android_JIE</author><pubDate>Tue, 30 Apr 2019 17:51:55 +0800</pubDate><description><![CDATA[一、整体思路
从使用方法出发，首先是怎么使用，其次是我们使用的功能在内部是如何实现的，实现方案上有什么技巧，有什么范式。全文基本上是对 Retrofit 源码的一个分析与导读，非常建议大家下载 Retrofit 源码之后，跟着本文，过一遍源码。
二、基本用例
2.1 创建 Retrofit 对象
Retrofit retrofit = new Retrofit.Builder()
    .bas...]]></description><category></category></item><item><title><![CDATA[OkHttp解析]]></title><link>https://blog.youkuaiyun.com/Android_JIE/article/details/89713496</link><guid>https://blog.youkuaiyun.com/Android_JIE/article/details/89713496</guid><author>Android_JIE</author><pubDate>Tue, 30 Apr 2019 17:28:50 +0800</pubDate><description><![CDATA[一、整体思路
从使用方法出发，首先是怎么使用，其次是我们使用的功能在内部是如何实现的，实现方案上有什么技巧，有什么范式。全文基本上是对 OkHttp 源码的一个分析与导读，非常建议大家下载 OkHttp 源码之后，跟着本文，过一遍源码。对于技巧和范式，由于目前我的功力还不到位，分析内容没多少，欢迎大家和我一起讨论。
首先放一张完整流程图（看不懂没关系，慢慢往后看）：

二、基本用例
来自OkHtt...]]></description><category></category></item><item><title><![CDATA[Hello~Android开发者们]]></title><link>https://blog.youkuaiyun.com/Android_JIE/article/details/89576872</link><guid>https://blog.youkuaiyun.com/Android_JIE/article/details/89576872</guid><author>Android_JIE</author><pubDate>Fri, 26 Apr 2019 21:13:01 +0800</pubDate><description><![CDATA[经常在群里听到大家对Android抱有一些消极的态度，想要换个方向，但是如果换个方向就能变成大牛的话，那大家都换就好了。
其实任何方向都存在”二八“定律，总有20%混的很好的人，我们要努力成为那20%，所以对自己的要求要逐渐提高，走出舒适区，尝试破局！
现在已经不能停留在熟练使用RxJava,Retrofit,OkHttp以及各种图片库了，而是要源码级彻底掌握他们。要清楚，一个库再牛逼，那也是作者...]]></description><category></category></item><item><title><![CDATA[Android图片异步加载框架Android-Universal-Image-Loader]]></title><link>https://blog.youkuaiyun.com/Android_JIE/article/details/89564674</link><guid>https://blog.youkuaiyun.com/Android_JIE/article/details/89564674</guid><author>Android_JIE</author><pubDate>Fri, 26 Apr 2019 17:29:33 +0800</pubDate><description><![CDATA[Android-Universal-Image-Loader是一个图片异步加载，缓存和显示的框架。这个框架已经被很多开发者所使用，是最常用的几个 Android开源项目之一，主流的应用，随便反编译几个，都可以见到它的身影。淘宝，天猫，Facebook，京东商城等都用到了这个项目。
该项目的Github地址链接：https://github.com/nostra13/Android-Universa...]]></description><category></category></item><item><title><![CDATA[Android 布局巧用之include、merge、ViewStub]]></title><link>https://blog.youkuaiyun.com/Android_JIE/article/details/89523781</link><guid>https://blog.youkuaiyun.com/Android_JIE/article/details/89523781</guid><author>Android_JIE</author><pubDate>Thu, 25 Apr 2019 19:45:22 +0800</pubDate><description><![CDATA[相信大家经常听到include、merge、ViewStub这样的标签，官方也提到这三种布局可用于布局的优化。今天就介绍下这三种布局的使用，记录下来，便于后续app中的使用。
include布局重用
app开发过程中，会遇到不同页面里有相同的布局，这时我们可以将这些通用的布局提取出来到一个单独的layout文件里，再使用&lt;include&gt;标签引入到相应的页面布局文件里，主要通过incl...]]></description><category></category></item><item><title><![CDATA[Android桌面小部件AppWidget开发]]></title><link>https://blog.youkuaiyun.com/Android_JIE/article/details/89518897</link><guid>https://blog.youkuaiyun.com/Android_JIE/article/details/89518897</guid><author>Android_JIE</author><pubDate>Thu, 25 Apr 2019 16:32:28 +0800</pubDate><description><![CDATA[什么是AppWidget
AppWidget 即桌面小部件，也叫桌面控件，就是能直接显示在Android系统桌面上的小程序，先看图：

图中我用黄色箭头指示的即为AppWidget，一些用户使用比较频繁的程序，可以做成AppWidget，这样能方便地使用。典型的程序有时钟、天气、音乐播放器等。AppWidget 是Android 系统应用开发层面的一部分，有着特殊用途，使用得当的化，的确会为app...]]></description><category></category></item><item><title><![CDATA[Android View 绘制流程详解]]></title><link>https://blog.youkuaiyun.com/Android_JIE/article/details/89498968</link><guid>https://blog.youkuaiyun.com/Android_JIE/article/details/89498968</guid><author>Android_JIE</author><pubDate>Wed, 24 Apr 2019 17:27:44 +0800</pubDate><description><![CDATA[View 绘制机制
一、 View 树的绘图流程
当 Activity 接收到焦点的时候，它会被请求绘制布局,该请求由 Android framework 处理.绘制是从根节点开始，对布局树进行 measure 和 draw。整个 View 树的绘图流程在ViewRoot.java类的performTraversals()函数展开，该函数所做 的工作可简单概况为是否需要重新计算视图大小(measu...]]></description><category></category></item><item><title><![CDATA[Android开发，再次学习MVP]]></title><link>https://blog.youkuaiyun.com/Android_JIE/article/details/89496635</link><guid>https://blog.youkuaiyun.com/Android_JIE/article/details/89496635</guid><author>Android_JIE</author><pubDate>Wed, 24 Apr 2019 16:28:08 +0800</pubDate><description><![CDATA[一、MVP简介

Model: 数据层，负责与网络层和数据库层的逻辑交互。
View: UI层，显示数据, 并向Presenter报告用户行为。
Presenter: 从Model拿数据，应用到UI层，管理UI的状态，响应用户的行为。
二、MVP优势
在学习todo-mvp之前，先了解一下MVP的优势。
分离了视图逻辑和业务逻辑，降低了耦合。
Activity只处理生命周期的任务，代码变得更加简洁...]]></description><category></category></item><item><title><![CDATA[使用 Kotlin 编写你的第一个 Firefox WebExtension 扩展]]></title><link>https://blog.youkuaiyun.com/Android_JIE/article/details/89477852</link><guid>https://blog.youkuaiyun.com/Android_JIE/article/details/89477852</guid><author>Android_JIE</author><pubDate>Tue, 23 Apr 2019 17:56:17 +0800</pubDate><description><![CDATA[Kotlin 是我最喜爱的编程语言。我们已经知道 Kotlin 编译成 Java 字节码可以快速被安卓和服务端采用。事实上，Kotlin 还支持编译成 JavaScript，因此该语言也开始在 Web 生态系统中受到关注。
尽管已经发布了许多 Kotlin 编写的 Web 应用程序，但至今人们都忽略了 Kotlin 还可以写浏览器扩展插件。所以我写了这篇文章，和大家一起探讨使用 Kotlin JS...]]></description><category></category></item><item><title><![CDATA[MVVM 架构与数据绑定库]]></title><link>https://blog.youkuaiyun.com/Android_JIE/article/details/89460199</link><guid>https://blog.youkuaiyun.com/Android_JIE/article/details/89460199</guid><author>Android_JIE</author><pubDate>Mon, 22 Apr 2019 20:32:59 +0800</pubDate><description><![CDATA[Model-View-Presenter（MVP），即模型-视图-表示层，架构被广泛应用于 Android 应用程序，通过引入表示层将视图与表示逻辑和模型分离。Model-View-ViewModel（MVVM），即模型-视图-视图模型，与 MVP 非常相似，视图模型充当增强的表示层，使用数据绑定器保持视图模型和视图同步。通过将视图绑定到视图模型属性上，数据绑定程序可以处理视图更新而无需手动更改数...]]></description><category></category></item><item><title><![CDATA[关于Android界面组件的基本用法]]></title><link>https://blog.youkuaiyun.com/Android_JIE/article/details/89456704</link><guid>https://blog.youkuaiyun.com/Android_JIE/article/details/89456704</guid><author>Android_JIE</author><pubDate>Mon, 22 Apr 2019 17:23:24 +0800</pubDate><description><![CDATA[1.文本框（TextView）和编辑框（EditText）
文本框（TextView）不允许用户编辑文本内容，而编辑框（EditText）允许用户编辑文本内容
2.按钮（Button）和图片按钮（ImageButton）
Button显示文字，ImageButton显示图片。
为ImageButton指定android:text属性没用，不会显示文字
可以指定android:background为...]]></description><category></category></item><item><title><![CDATA[关于Android的几种事件处理]]></title><link>https://blog.youkuaiyun.com/Android_JIE/article/details/89456037</link><guid>https://blog.youkuaiyun.com/Android_JIE/article/details/89456037</guid><author>Android_JIE</author><pubDate>Mon, 22 Apr 2019 17:05:34 +0800</pubDate><description><![CDATA[Android事件处理通常和控件相结合，通常有以下几种事件处理模型：
•（一）事件监听的处理模型
public voidonCreate(Bundle savedInstanceState)
{
         super.onCreate(savedInstanceState);
         setContentView(R.layout.main);
         Button b...]]></description><category></category></item><item><title><![CDATA[Kotlin每个Android应用程序开发人员必须知道的功能]]></title><link>https://blog.youkuaiyun.com/Android_JIE/article/details/89405109</link><guid>https://blog.youkuaiyun.com/Android_JIE/article/details/89405109</guid><author>Android_JIE</author><pubDate>Fri, 19 Apr 2019 17:39:35 +0800</pubDate><description><![CDATA[Java被认为是Android操作系统的核心，因此，对于每个Android开发人员来说，除了Java之外几乎没有其他选择。好吧，最后，Java的一个极好的替代品已经出现了很多价值。Kotlin是一种编程语言，是Java开发的更好，更有效的替代方案。
此时此刻，Android社区对Kotlin的讨论充满了热情。这正是我们要解释Kotlin的五个关键特征的原因。

Kotlin优于Java的优势
由J...]]></description><category></category></item><item><title><![CDATA[如何从Android应用程序捕获堆转储]]></title><link>https://blog.youkuaiyun.com/Android_JIE/article/details/89403644</link><guid>https://blog.youkuaiyun.com/Android_JIE/article/details/89403644</guid><author>Android_JIE</author><pubDate>Fri, 19 Apr 2019 16:48:53 +0800</pubDate><description><![CDATA[堆转储是诊断与内存相关的问题（如内存泄漏，垃圾收集问题和java.lang.OutOfMemoryError）的重要工件。它们也是优化内存使用的重要工件。
在本文中，我们提供了一些从Android应用程序捕获堆转储的不同选项。捕获堆转储后，你可以使用HeapHero和Android Studio堆分析器等优秀工具来分析堆转储。
1. Memory Profiler
以下是从Android Stud...]]></description><category></category></item></channel></rss>