<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[陌影]]></title><description><![CDATA[水滴石穿]]></description><link>https://blog.youkuaiyun.com/baidujiangwei18</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; baidujiangwei18]]></copyright><item><title><![CDATA[JNI（C访问Java方法）]]></title><link>https://blog.youkuaiyun.com/baidujiangwei18/article/details/72357356</link><guid>https://blog.youkuaiyun.com/baidujiangwei18/article/details/72357356</guid><author>baidujiangwei18</author><pubDate>Wed, 17 May 2017 10:28:42 +0800</pubDate><description><![CDATA[JNI（C访问Java方法）签名char *sig项目链接地址:https://github.com/jiangwei1517/JniTest1在项目bin目录下输入：javap -s -p com.jiangwei.JniTest1
访问属性JNIEXPORT jstring JNICALL Java_com_jiangwei_JniTest1_changeFieldFromC
(JNIEnv*]]></description><category></category></item><item><title><![CDATA[RxJava 使用debounce操作符 优化app搜索功能]]></title><link>https://blog.youkuaiyun.com/baidujiangwei18/article/details/51706697</link><guid>https://blog.youkuaiyun.com/baidujiangwei18/article/details/51706697</guid><author>baidujiangwei18</author><pubDate>Sat, 18 Jun 2016 18:22:16 +0800</pubDate><description><![CDATA[﻿﻿
1 抛出问题
现在几乎所有的App都有搜索功能 , 一般情况我们监听EditText控件,当值发生改变去请求搜索接口. 如：
etKey.addTextChangedListener(new TextWatcher() {
    @Override
    public void beforeTextChanged(CharSequence s, int start, int cou]]></description><category></category></item><item><title><![CDATA[RxJAVA详解]]></title><link>https://blog.youkuaiyun.com/baidujiangwei18/article/details/51657035</link><guid>https://blog.youkuaiyun.com/baidujiangwei18/article/details/51657035</guid><author>baidujiangwei18</author><pubDate>Mon, 13 Jun 2016 13:26:33 +0800</pubDate><description><![CDATA[前言

我从去年开始使用 RxJava ，到现在一年多了。今年加入了 Flipboard 后，看到 Flipboard 的 Android 项目也在使用 RxJava ，并且使用的场景越来越多 。而最近这几个月，我也发现国内越来越多的人开始提及 RxJava 。有人说『RxJava 真是太好用了』，有人说『RxJava 真是太难用了』，另外更多的人表示：我真的百度了也谷歌了，但我还是想问： R]]></description><category></category></item><item><title><![CDATA[Android Handler泄露问题]]></title><link>https://blog.youkuaiyun.com/baidujiangwei18/article/details/51537640</link><guid>https://blog.youkuaiyun.com/baidujiangwei18/article/details/51537640</guid><author>baidujiangwei18</author><pubDate>Mon, 30 May 2016 14:23:57 +0800</pubDate><description><![CDATA[内部类引用导致Activity的泄漏：

最典型的场景是Handler导致的Activity泄漏，如果Handler中有延迟的任务或者是等待执行的任务队列过长，都有可能因为Handler继续执行而导致Activity发生泄漏。此时的引用关系链是Looper -> MessageQueue -> Message -> Handler -> Activity。为了解决这个问题，可以在UI退出之前，]]></description><category></category></item><item><title><![CDATA[Android常用性能优化]]></title><link>https://blog.youkuaiyun.com/baidujiangwei18/article/details/51537150</link><guid>https://blog.youkuaiyun.com/baidujiangwei18/article/details/51537150</guid><author>baidujiangwei18</author><pubDate>Mon, 30 May 2016 13:09:02 +0800</pubDate><description><![CDATA[本篇主要是对 google推出的性能优化典范 进行一个通篇的整理… 主要在于一些具体的优化技巧、至于 60fps、掉帧、gc、内存抖动、阈值…等等这些性能术语的概念里面不做多概括，请自行查阅…

本篇从以下几点延伸扩展…]]></description><category></category></item><item><title><![CDATA[Android替代HashMap的SparseArray]]></title><link>https://blog.youkuaiyun.com/baidujiangwei18/article/details/51461382</link><guid>https://blog.youkuaiyun.com/baidujiangwei18/article/details/51461382</guid><author>baidujiangwei18</author><pubDate>Fri, 20 May 2016 14:26:16 +0800</pubDate><description><![CDATA[一、概述
最近在项目中看到了SparseArray，好奇研究了下。 SparseArray是Android框架独有的类，在标准的JDK中不存在这个类。它要比 HashMap 节省内存，某些情况下比HashMap性能更好，按照官方问答的解释，主要是因为SparseArray不需要对key和value进行auto-boxing（将原始类型封装为对象类型，比如把int类型封装成Integer类型），结]]></description><category></category></item><item><title><![CDATA[关于android中ListView的Adapter如何设计能通用的一些看法]]></title><link>https://blog.youkuaiyun.com/baidujiangwei18/article/details/51460928</link><guid>https://blog.youkuaiyun.com/baidujiangwei18/article/details/51460928</guid><author>baidujiangwei18</author><pubDate>Fri, 20 May 2016 13:13:37 +0800</pubDate><description><![CDATA[我们都知道，在安卓中使用ListView显示多条数据的时候，必须要用一个适配器作为Data和View的桥梁,这种设计非常好， 能很简单就把ui和data分离开来，为ui的复用和维护代码提供方便。
但是每次写一个适配器，都要实现一大堆的重复逻辑，其实每次getView中无非就是Holder对象不一样，加载的数据类型不一样，剩下的方法都是相同的，那么我们就可以将相同的元素抽取出来写成一个基类，整理下代码冗余。]]></description><category></category></item><item><title><![CDATA[Android通知栏的微技巧(5.0之后小图标与大图标的区别)]]></title><link>https://blog.youkuaiyun.com/baidujiangwei18/article/details/51453364</link><guid>https://blog.youkuaiyun.com/baidujiangwei18/article/details/51453364</guid><author>baidujiangwei18</author><pubDate>Thu, 19 May 2016 14:06:24 +0800</pubDate><description><![CDATA[对于通知栏的使用，Android各个版本其实都有比较大的调整，包括即将发布的Android 7.0版本，通知栏功能上又要有大动作。那么新版本的通知栏API无法兼容老系统这就会是一个很头疼的问题。]]></description><category></category></item><item><title><![CDATA[Android Viewpager+Fragment的懒加载优化问题]]></title><link>https://blog.youkuaiyun.com/baidujiangwei18/article/details/51453167</link><guid>https://blog.youkuaiyun.com/baidujiangwei18/article/details/51453167</guid><author>baidujiangwei18</author><pubDate>Thu, 19 May 2016 13:39:57 +0800</pubDate><description><![CDATA[我们在做应用开发的时候，一个Activity里面可能会以viewpager（或其他容器）与多个Fragment来组合使用，而如果每个fragment都需要去加载数据，或从本地加载，或从网络加载，那么在这个activity刚创建的时候就变成需要初始化大量资源。这样的结果，我们当然不会满意。那么，能不能做到当切换到这个fragment的时候，它才去初始化呢？

答案就在Fragment里的setU]]></description><category></category></item><item><title><![CDATA[Android加载大图片，LRU缓存机制]]></title><link>https://blog.youkuaiyun.com/baidujiangwei18/article/details/51439480</link><guid>https://blog.youkuaiyun.com/baidujiangwei18/article/details/51439480</guid><author>baidujiangwei18</author><pubDate>Tue, 17 May 2016 21:13:01 +0800</pubDate><description><![CDATA[高效加载大图片
我们在编写Android程序的时候经常要用到许多图片，不同图片总是会有不同的形状、不同的大小，但在大多数情况下，这些图片都会大于我们程序所需要的大小。比如说系统图片库里展示的图片大都是用手机摄像头拍出来的，这些图片的分辨率会比我们手机屏幕的分辨率高得多。大家应该知道，我们编写的应用程序都是有一定内存限制的，程序占用了过高的内存就容易出现OOM(OutOfMemory)异常。我们可以通过下面的代码看出每个应用程序最高可用内存是多少。]]></description><category></category></item><item><title><![CDATA[Android Handler（子线程Handler）异步消息处理机制的妙用（活用信号量） 创建强大的图片加载类]]></title><link>https://blog.youkuaiyun.com/baidujiangwei18/article/details/51439321</link><guid>https://blog.youkuaiyun.com/baidujiangwei18/article/details/51439321</guid><author>baidujiangwei18</author><pubDate>Tue, 17 May 2016 20:53:18 +0800</pubDate><description><![CDATA[转载请标明出处：http://blog.youkuaiyun.com/lmj623565791/article/details/38476887 ，本文出自【张鸿洋的博客】
最近创建了一个群，方便大家交流，群号：55032675
上一篇博客介绍了Android异步消息处理机制，如果你还不了解，可以看：Android 异步消息处理机制 让你深入理解 Looper、Handler、Message三者关系 。那篇博客的最后，提出可以把异步消息处理机制不仅仅是在MainActivity中更新UI，可以用到别的地方，最近也一直在]]></description><category></category></item><item><title><![CDATA[Android 异步消息处理机制 让你深入理解 Looper、Handler、Message三者关系]]></title><link>https://blog.youkuaiyun.com/baidujiangwei18/article/details/51437688</link><guid>https://blog.youkuaiyun.com/baidujiangwei18/article/details/51437688</guid><author>baidujiangwei18</author><pubDate>Tue, 17 May 2016 17:14:48 +0800</pubDate><description><![CDATA[转载请标明出处：http://blog.youkuaiyun.com/lmj623565791/article/details/38377229 ，本文出自【张鸿洋的博客】

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

1、 概述
Handler 、 Lo]]></description><category></category></item><item><title><![CDATA[Android-本地广播提高安全性]]></title><link>https://blog.youkuaiyun.com/baidujiangwei18/article/details/51436383</link><guid>https://blog.youkuaiyun.com/baidujiangwei18/article/details/51436383</guid><author>baidujiangwei18</author><pubDate>Tue, 17 May 2016 15:22:21 +0800</pubDate><description><![CDATA[通常 我们大部分广播接收器的作用是为了处理我们的应用业务,

在广播机制中,Android提供了LocalBroadcastManager类来为我们应用安全保驾护航]]></description><category></category></item><item><title><![CDATA[Android onTouchEvent,onClick,onLongClick的return值注意事项]]></title><link>https://blog.youkuaiyun.com/baidujiangwei18/article/details/51435362</link><guid>https://blog.youkuaiyun.com/baidujiangwei18/article/details/51435362</guid><author>baidujiangwei18</author><pubDate>Tue, 17 May 2016 13:28:25 +0800</pubDate><description><![CDATA[android应用中常用的监听OnTouchListener、OnClickListener、OnLongClickListener，大家肯定经常使用。但是你真的知道它会产生的神奇效果么？不要忽视这些神奇效果哦！说不定这些神奇效果正是你想要的呢？好，下面请看我的示例。

示例、

首先在Activity中创建一个button，然后对这个button同时设置OnTouchListener、OnClickListener、onLongClickListener这三种监听方式。接着就是重写这三个接口的实现代码了。]]></description><category></category></item><item><title><![CDATA[Android解决ListView头ViewPager事件冲突问题]]></title><link>https://blog.youkuaiyun.com/baidujiangwei18/article/details/51434741</link><guid>https://blog.youkuaiyun.com/baidujiangwei18/article/details/51434741</guid><author>baidujiangwei18</author><pubDate>Tue, 17 May 2016 11:26:44 +0800</pubDate><description><![CDATA[在LIstView添加addHeader()时，会出现事件冲突，比较好的解决方法包括两种，一种是自定义ListView，重写他的拦截方法，另外一种就是自定义ViewPager。]]></description><category></category></item><item><title><![CDATA[Android 屏幕旋转 处理 AsyncTask 和 ProgressDialog 的最佳方案]]></title><link>https://blog.youkuaiyun.com/baidujiangwei18/article/details/51417454</link><guid>https://blog.youkuaiyun.com/baidujiangwei18/article/details/51417454</guid><author>baidujiangwei18</author><pubDate>Sun, 15 May 2016 15:59:16 +0800</pubDate><description><![CDATA[1、概述
众所周知，Activity在不明确指定屏幕方向和configChanges时，当用户旋转屏幕会重新启动。当然了，应对这种情况，Android给出了几种方案：
a、如果是少量数据，可以通过onSaveInstanceState()和onRestoreInstanceState()进行保存与恢复。
Android会在销毁你的Activity之前调用onSaveInstanceState()方法，于是，你可以在此方法中存储关于应用状态的数据。然后你可以在onCreate()或onRestoreInsta]]></description><category></category></item><item><title><![CDATA[Android 官方推荐 : DialogFragment 创建对话框]]></title><link>https://blog.youkuaiyun.com/baidujiangwei18/article/details/51417066</link><guid>https://blog.youkuaiyun.com/baidujiangwei18/article/details/51417066</guid><author>baidujiangwei18</author><pubDate>Sun, 15 May 2016 14:51:43 +0800</pubDate><description><![CDATA[DialogFragment在android 3.0时被引入。是一种特殊的Fragment，用于在Activity的内容之上展示一个模态的对话框。典型的用于：展示警告框，输入框，确认框等等。
在DialogFragment产生之前，我们创建对话框：一般采用AlertDialog和Dialog。注：官方不推荐直接使用Dialog创建对话框。]]></description><category></category></item><item><title><![CDATA[Android Fragment 真正的完全解析（下）]]></title><link>https://blog.youkuaiyun.com/baidujiangwei18/article/details/51417058</link><guid>https://blog.youkuaiyun.com/baidujiangwei18/article/details/51417058</guid><author>baidujiangwei18</author><pubDate>Sun, 15 May 2016 14:50:05 +0800</pubDate><description><![CDATA[本篇将介绍上篇博客提到的：如何管理Fragment回退栈，Fragment如何与Activity交互，Fragment与Activity交互的最佳实践，没有视图的Fragment的用处，使用Fragment创建对话框，如何与ActionBar，MenuItem集成等~~]]></description><category></category></item><item><title><![CDATA[Android Fragment 真正的完全解析（上）]]></title><link>https://blog.youkuaiyun.com/baidujiangwei18/article/details/51417052</link><guid>https://blog.youkuaiyun.com/baidujiangwei18/article/details/51417052</guid><author>baidujiangwei18</author><pubDate>Sun, 15 May 2016 14:48:33 +0800</pubDate><description><![CDATA[本篇博客力求为大家说明Fragment如何产生，什么是Fragment，Fragment生命周期，如何静态和动态的使用Fragment，Fragment回退栈，Fragment事务；以及Fragment的一些特殊用途，例如：没有布局的Fragment有何用处？Fragment如何与Activity交互？Fragment如何创建对话框？Fragment如何与ActionBar集成等等。]]></description><category></category></item><item><title><![CDATA[给Android ListView添加删除item动画]]></title><link>https://blog.youkuaiyun.com/baidujiangwei18/article/details/51387633</link><guid>https://blog.youkuaiyun.com/baidujiangwei18/article/details/51387633</guid><author>baidujiangwei18</author><pubDate>Thu, 12 May 2016 21:14:20 +0800</pubDate><description><![CDATA[给listview删除一个item的时候加上一个折叠动画，感觉效果会好一点。

步骤是当删除一个view，先用动画把view的高度改变，看上去就是折叠的效果。当动画完成的时候，再真正把item移除。

做法大概分为两种，补间动画、属性动画]]></description><category></category></item></channel></rss>