<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[dong_xg的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/dong_xg</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; dong_xg]]></copyright><item><title><![CDATA[compileSdkVersion，minSdkVersion，targetSdkVersion 的区别和比较]]></title><link>https://blog.youkuaiyun.com/dong_xg/article/details/83508401</link><guid>https://blog.youkuaiyun.com/dong_xg/article/details/83508401</guid><author>dong_xg</author><pubDate>Mon, 29 Oct 2018 16:43:35 +0800</pubDate><description><![CDATA[compileSdkVersion，miniSdkVersion，targetSdkVersion的作用 ：


compileSdkVersion：这个主要是我们编译app时候用的sdk版本，就我们在AndroidStudio上面点击运行时候的编译时候的环境。记住这个只是在编译时候选择的版本，不涉及到运行时候的行为。由于androidStudio有预编译的功能所以会提示一些警告，提前了解新的sd...]]></description><category></category></item><item><title><![CDATA[Android Studio 打JAR包]]></title><link>https://blog.youkuaiyun.com/dong_xg/article/details/80676773</link><guid>https://blog.youkuaiyun.com/dong_xg/article/details/80676773</guid><author>dong_xg</author><pubDate>Wed, 13 Jun 2018 11:33:00 +0800</pubDate><description><![CDATA[一、新建一个as项目，再新建一个model模块

然后再app中的build.gradle中添加model的依赖。然后编译项目。

二、编译完成后，打开model下的build——intermediates——bundles目录，目录下有两个文件夹，debug，default，在default文件夹下有一个classess.jar，就是编译完成的jar包，

这里需要主要的是：因为我们使用的 as...]]></description><category></category></item><item><title><![CDATA[HandlerThread的使用以及原理]]></title><link>https://blog.youkuaiyun.com/dong_xg/article/details/80540785</link><guid>https://blog.youkuaiyun.com/dong_xg/article/details/80540785</guid><author>dong_xg</author><pubDate>Fri, 01 Jun 2018 17:28:21 +0800</pubDate><description><![CDATA[HandlerThread


  如果已经理解Handler,Loop,MessageQueue的工作原理看此篇文章会非常简单，若没有了解的读者，可以看下面的文章：  
  Handler类和Handler,Loop,MessageQueue的工作原理


首先我们先看一下官方的描述：


  Handy class for starting a new thread that has a lo...]]></description><category></category></item><item><title><![CDATA[生产者消费者]]></title><link>https://blog.youkuaiyun.com/dong_xg/article/details/80528181</link><guid>https://blog.youkuaiyun.com/dong_xg/article/details/80528181</guid><author>dong_xg</author><pubDate>Thu, 31 May 2018 18:04:05 +0800</pubDate><description><![CDATA[问题意义

生产者消费者问题是一个很经典的问题，通过解决此问题，能够学到多线程的的知识。

程序设计思路

在本程序中采用信号灯的方式，用Flag作为标志位，指示生产过程和消费过程是否结束。Flag为true时，生产者开始生产，消费者等待，Flag为false时，消费者开始消费，生产者等待。使用synchronize来锁定生产过程和消费过程，使得两个线程调用一个资源的时候能够有序进行。

程序清单...]]></description><category></category></item><item><title><![CDATA[Android之collection（集合）]]></title><link>https://blog.youkuaiyun.com/dong_xg/article/details/80520569</link><guid>https://blog.youkuaiyun.com/dong_xg/article/details/80520569</guid><author>dong_xg</author><pubDate>Thu, 31 May 2018 10:39:31 +0800</pubDate><description><![CDATA[Java集合框架的基本接口/类层次结构：

[I]：接口 
[C]：类 



java.util.Collection [I]
+--java.util.List [I]
   +--java.util.ArrayList [C]
   +--java.util.LinkedList [C]
   +--java.util.Vector [C]
      +--java.util.Stack ...]]></description><category></category></item><item><title><![CDATA[Android引用方式]]></title><link>https://blog.youkuaiyun.com/dong_xg/article/details/80512471</link><guid>https://blog.youkuaiyun.com/dong_xg/article/details/80512471</guid><author>dong_xg</author><pubDate>Wed, 30 May 2018 16:50:16 +0800</pubDate><description><![CDATA[引用类型：

引用分为四种级别，这四种级别由高到低依次为：强引用&amp;amp;gt;软引用&amp;amp;gt;弱引用&amp;amp;gt;虚引用。

强引用（strong reference） 
如：Object object=new Object（），object就是一个强引用了。当内存空间不足，Java虚拟机宁愿抛出OutOfMemoryError错误，使程序异常终止，也不会靠随意回收具有强引用的对象来解决内存不足问题。

软引用...]]></description><category></category></item><item><title><![CDATA[GreenDao3.0简单使用]]></title><link>https://blog.youkuaiyun.com/dong_xg/article/details/80340143</link><guid>https://blog.youkuaiyun.com/dong_xg/article/details/80340143</guid><author>dong_xg</author><pubDate>Wed, 16 May 2018 17:26:04 +0800</pubDate><description><![CDATA[关于GreenDao 
greenDao是一个将对象映射到SQLite数据库中的轻量且快速的ORM解决方案。 
关于greenDAO的概念可以看官网greenDAO

greenDAO 优势 
1、一个精简的库 
2、性能最大化 
3、内存开销最小化 
4、易于使用的 APIs 
5、对 Android 进行高度优化

GreenDao 3.0使用 
GreenDao 3.0采用注解的方式来定义实...]]></description><category></category></item><item><title><![CDATA[Android APP 性能优化的一些思考]]></title><link>https://blog.youkuaiyun.com/dong_xg/article/details/79408169</link><guid>https://blog.youkuaiyun.com/dong_xg/article/details/79408169</guid><author>dong_xg</author><pubDate>Thu, 01 Mar 2018 09:35:00 +0800</pubDate><description><![CDATA[说到 Android 系统手机，大部分人的印象是用了一段时间就变得有点卡顿，有些程序在运行期间莫名其妙的出现崩溃，打开系统文件夹一看，发现多了很多文件，然后用手机管家 APP 不断地进行清理优化 ，才感觉运行速度稍微提高了点，就算手机在各种性能跑分软件面前分数遥遥领先，还是感觉无论有多大的内存空间都远远不够用。相信每个使用 Android 系统的用户都有过以上类似经历，确实，Android 系统在...]]></description><category></category></item><item><title><![CDATA[Java多线程-线程池ThreadPoolExecutor构造方法和规则]]></title><link>https://blog.youkuaiyun.com/dong_xg/article/details/79385055</link><guid>https://blog.youkuaiyun.com/dong_xg/article/details/79385055</guid><author>dong_xg</author><pubDate>Tue, 27 Feb 2018 10:48:08 +0800</pubDate><description><![CDATA[为什么用线程池 
博客地址 http://blog.youkuaiyun.com/qq_25806863

原文地址 http://blog.youkuaiyun.com/qq_25806863/article/details/71126867

有时候，系统需要处理非常多的执行时间很短的请求，如果每一个请求都开启一个新线程的话，系统就要不断的进行线程的创建和销毁，有时花在创建和销毁线程上的时间会比线程真正执行的时间还长...]]></description><category></category></item><item><title><![CDATA[Android 异步消息处理机制 让你深入理解 Looper、Handler、Message三者关系]]></title><link>https://blog.youkuaiyun.com/dong_xg/article/details/79364290</link><guid>https://blog.youkuaiyun.com/dong_xg/article/details/79364290</guid><author>dong_xg</author><pubDate>Sat, 24 Feb 2018 17:56:49 +0800</pubDate><description><![CDATA[转载请标明出处：http://blog.youkuaiyun.com/lmj623565791/article/details/38377229 ，本文出自【张鸿洋的博客】

很多人面试肯定都被问到过，请问Android中的Looper , Handler , Message有什么关系？本篇博客目的首先为大家从源码角度介绍3者关系，然后给出一个容易记忆的结论。

1、  概述 
Handler 、 Loope...]]></description><category></category></item><item><title><![CDATA[最全面总结 Android WebView与 JS 的交互方式]]></title><link>https://blog.youkuaiyun.com/dong_xg/article/details/79290852</link><guid>https://blog.youkuaiyun.com/dong_xg/article/details/79290852</guid><author>dong_xg</author><pubDate>Thu, 08 Feb 2018 16:09:00 +0800</pubDate><description><![CDATA[目录 


1. 交互方式总结 
Android与JS通过WebView互相调用方法，实际上是：

Android去调用JS的代码 
JS去调用Android的代码 
二者沟通的桥梁是WebView

对于Android调用JS代码的方法有2种： 
1.通过WebView的loadUrl（） 
2.通过WebView的evaluateJavascript（）

对于JS调用Android代码的方法...]]></description><category></category></item><item><title><![CDATA[Android开发：最全面、最易懂的Webview使用详解]]></title><link>https://blog.youkuaiyun.com/dong_xg/article/details/79290203</link><guid>https://blog.youkuaiyun.com/dong_xg/article/details/79290203</guid><author>dong_xg</author><pubDate>Thu, 08 Feb 2018 15:27:12 +0800</pubDate><description><![CDATA[前言 
现在很多App里都内置了Web网页（Hyprid App），比如说很多电商平台，淘宝、京东、聚划算等等，如下图 
 
京东首页 
那么这种该如何实现呢？其实这是Android里一个叫WebView的组件实现的。今天我将全面介绍WebView的常用用法。

目录 
 
1. 简介 
WebView是一个基于webkit引擎、展现web页面的控件。

Android的Webview在低版本和高...]]></description><category></category></item><item><title><![CDATA[关于Android Service真正的完全详解，你需要知道的一切]]></title><link>https://blog.youkuaiyun.com/dong_xg/article/details/79231610</link><guid>https://blog.youkuaiyun.com/dong_xg/article/details/79231610</guid><author>dong_xg</author><pubDate>Thu, 01 Feb 2018 17:53:48 +0800</pubDate><description><![CDATA[Service全部内容基本会在本篇涉及到，我们将围绕以下主要知识点进行分析：Service简单概述 
Service在清单文件中的声明 
Service启动服务实现方式及其详解 
Service绑定服务的三种实现方式]]></description><category></category></item><item><title><![CDATA[Android RecyclerView 使用完全解析]]></title><link>https://blog.youkuaiyun.com/dong_xg/article/details/79164558</link><guid>https://blog.youkuaiyun.com/dong_xg/article/details/79164558</guid><author>dong_xg</author><pubDate>Thu, 25 Jan 2018 17:26:23 +0800</pubDate><description><![CDATA[转载请标明出处： 
http://blog.youkuaiyun.com/lmj623565791/article/details/45059587； 
本文出自:【张鸿洋的博客】

概述 
RecyclerView出现已经有一段时间了，相信大家肯定不陌生了，大家可以通过导入support-v7对其进行使用。  
据官方的介绍，该控件用于在有限的窗口中展示大量数据集，其实这样功能的控件我们并不陌生，例如：Li]]></description><category></category></item><item><title><![CDATA[AS2.2使用CMake方式进行JNI/NDK开发]]></title><link>https://blog.youkuaiyun.com/dong_xg/article/details/79162266</link><guid>https://blog.youkuaiyun.com/dong_xg/article/details/79162266</guid><author>dong_xg</author><pubDate>Thu, 25 Jan 2018 15:16:37 +0800</pubDate><description><![CDATA[JNI/NDK]]></description><category></category></item><item><title><![CDATA[Android组件系列----ContentProvider内容提供者]]></title><link>https://blog.youkuaiyun.com/dong_xg/article/details/79131828</link><guid>https://blog.youkuaiyun.com/dong_xg/article/details/79131828</guid><author>dong_xg</author><pubDate>Mon, 22 Jan 2018 17:54:48 +0800</pubDate><description><![CDATA[文章来源：http://www.cnblogs.com/smyhvae/p/4108017.html

【正文】 
一、ContentProvider简介

ContentProvider内容提供者（四大组件之一）主要用于在不同的应用程序之间实现数据共享的功能。

ContentProvider可以理解为一个Android应用对外开放的接口，只要是符合它所定义的Uri格式的请求，均可以正常访问执行]]></description><category></category></item><item><title><![CDATA[Android自定义ViewGroup神器-ViewDragHelper]]></title><link>https://blog.youkuaiyun.com/dong_xg/article/details/79098922</link><guid>https://blog.youkuaiyun.com/dong_xg/article/details/79098922</guid><author>dong_xg</author><pubDate>Thu, 18 Jan 2018 17:38:33 +0800</pubDate><description><![CDATA[ViewDragHelper]]></description><category></category></item><item><title><![CDATA[Android滑动事件冲突]]></title><link>https://blog.youkuaiyun.com/dong_xg/article/details/79084279</link><guid>https://blog.youkuaiyun.com/dong_xg/article/details/79084279</guid><author>dong_xg</author><pubDate>Wed, 17 Jan 2018 13:37:38 +0800</pubDate><description><![CDATA[首先，我们假设这样一个场景：一个ViewPager里面嵌套一个ViewPager，内部滑动方向和外部滑动方向一样时，该怎么解决这一冲突呢？  
针对滑动冲突这里给出两种解决方案：外部拦截法，内部拦截法。

外部拦截法 
情景：一个ViewPager嵌套了一个Listview，一个是左右滑动，一个上下滑动。这个时候我们可以用外部拦截法，来处理冲突。在父容器ViewPager中，重写onInterce]]></description><category></category></item><item><title><![CDATA[android 拍照，图片裁剪，选择图片]]></title><link>https://blog.youkuaiyun.com/dong_xg/article/details/79031534</link><guid>https://blog.youkuaiyun.com/dong_xg/article/details/79031534</guid><author>dong_xg</author><pubDate>Thu, 11 Jan 2018 10:47:50 +0800</pubDate><description><![CDATA[照片

1.跳转到拍照界面



 File imageFile = new File(Environment
                                .getExternalStorageDirectory(), "tempImage.jpg");
                        // 如果存在就删了重新创建]]></description><category></category></item><item><title><![CDATA[浅谈 MVP in Android]]></title><link>https://blog.youkuaiyun.com/dong_xg/article/details/78954100</link><guid>https://blog.youkuaiyun.com/dong_xg/article/details/78954100</guid><author>dong_xg</author><pubDate>Tue, 02 Jan 2018 17:47:28 +0800</pubDate><description><![CDATA[转载请标明出处： 
http://blog.youkuaiyun.com/lmj623565791/article/details/46596109； 
本文出自:【张鸿洋的博客】


一、概述


对于MVP（Model View Presenter），大多数人都能说出一二：“MVC的演化版本”，“让Model和View完全解耦”等等。本篇博文仅是为了做下记录，提出一些自己的看法，和帮助大家]]></description><category></category></item></channel></rss>