<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[Aven的专栏]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/ballonge</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; ballonge]]></copyright><item><title><![CDATA[Android Task任务栈]]></title><link>https://blog.youkuaiyun.com/ballonge/article/details/51173650</link><guid>https://blog.youkuaiyun.com/ballonge/article/details/51173650</guid><author>ballonge</author><pubDate>Sun, 17 Apr 2016 18:15:54 +0800</pubDate><description><![CDATA[做了一年多两年的Android研发，Activity一直在使用，而关于Activity任务栈类型，一直都属于知道，了解的状态，一直没有深入进去研究，所以在开发过程中，也是一直用着default的任务栈模式。趁着这次遇到一个bug，那就顺便把这个问题深究，剖析清楚。


在开发GO搜索的时候，遇到一个bug，主要场景是这样的：GO搜索功能是一个独立的Activity，进入这个Activity的]]></description><category></category></item><item><title><![CDATA[Android获取栈顶程序]]></title><link>https://blog.youkuaiyun.com/ballonge/article/details/51085953</link><guid>https://blog.youkuaiyun.com/ballonge/article/details/51085953</guid><author>ballonge</author><pubDate>Thu, 07 Apr 2016 15:09:01 +0800</pubDate><description><![CDATA[在5.0以前google给我们提供的API是ActivityManager类中通过getRunningTasks（）获取当前打开的所有应用程序 ，所以，如果想要获取当前的栈顶Activity，只需要以下方法：
ActivityManager activityManager = (ActivityManager) context.getSystemService(Context.ACTIVITY_]]></description><category></category></item><item><title><![CDATA[Too many alarms (500) registered]]></title><link>https://blog.youkuaiyun.com/ballonge/article/details/51085836</link><guid>https://blog.youkuaiyun.com/ballonge/article/details/51085836</guid><author>ballonge</author><pubDate>Thu, 07 Apr 2016 14:45:25 +0800</pubDate><description><![CDATA[项目用了AlarmManager之后，出现了以下报错;


StackTrace=!@Too many alarms (500) registered from pid 5354 uid 10152java.lang.SecurityException: !@Too many alarms (500) registered from pid 5354 uid 10152
at androi]]></description><category></category></item><item><title><![CDATA[android.view.WindowManager$BadTokenException]]></title><link>https://blog.youkuaiyun.com/ballonge/article/details/51085800</link><guid>https://blog.youkuaiyun.com/ballonge/article/details/51085800</guid><author>ballonge</author><pubDate>Thu, 07 Apr 2016 14:40:08 +0800</pubDate><description><![CDATA[一. 背景

输入法之前的版本在跑Monkey测试以及崩溃后台，会出现比较多的android.view.WindowManager$BadTokenException的崩溃，崩溃堆栈如下:
StackTrace=Unable to add window -- token android.os.BinderProxy@447ebf50 is
 not valid; is your activ]]></description><category></category></item><item><title><![CDATA[android.os.TransactionTooLargeException异常]]></title><link>https://blog.youkuaiyun.com/ballonge/article/details/51085778</link><guid>https://blog.youkuaiyun.com/ballonge/article/details/51085778</guid><author>ballonge</author><pubDate>Thu, 07 Apr 2016 14:38:54 +0800</pubDate><description><![CDATA[一. 背景


输入法在V2.30(185)和V2.35(196)两个版本中都碰到了大量的TransactionTooLargeException的崩溃问题，其中崩溃的堆栈有所不同：

V2.30：android.app.ApplicationPackageManager.getInstalledPackages(ApplicationPackageManager.java:464)V2]]></description><category></category></item><item><title><![CDATA[ContentProvider跨APP读取数据失败]]></title><link>https://blog.youkuaiyun.com/ballonge/article/details/50884207</link><guid>https://blog.youkuaiyun.com/ballonge/article/details/50884207</guid><author>ballonge</author><pubDate>Mon, 14 Mar 2016 12:05:54 +0800</pubDate><description><![CDATA[一、问题场景
     现在有两个应用，一个是应用A，另一个是应用B，B是做为插件的形式存在，服务于A，当应用A需要数据时，则通过ContentProvider去拿数据回来。但是现在有个问题，就是在Android版本5.x上，有一个是否允许自启动权限，这个权限会影响到应用A向应用B获取数据。我们先来看看下面几个场景：


场景一：安装应用A，再安装应用B，打开应用B的自启动权限，这个时候激]]></description><category></category></item><item><title><![CDATA[JAVA 异常 throwable exception error]]></title><link>https://blog.youkuaiyun.com/ballonge/article/details/44834781</link><guid>https://blog.youkuaiyun.com/ballonge/article/details/44834781</guid><author>ballonge</author><pubDate>Thu, 02 Apr 2015 17:19:57 +0800</pubDate><description><![CDATA[本文转自 http://lvp.iteye.com/blog/356650 详情请看原文


1.如何理解Exception,Error和Throwable 
    Throwable是Exception和Error的父类. 
    Error表示错误，一般是系统级的错误！ 
     Exception一般是程序运行期间的错误！ 
    
    通常在使用  try{}c]]></description><category></category></item><item><title><![CDATA[Android实战技巧：为从右向左语言定义复杂字串]]></title><link>https://blog.youkuaiyun.com/ballonge/article/details/44517077</link><guid>https://blog.youkuaiyun.com/ballonge/article/details/44517077</guid><author>ballonge</author><pubDate>Sat, 21 Mar 2015 17:08:27 +0800</pubDate><description><![CDATA[我们所使用的语言，无论是中文还是英语，都是从左向右读的(Left-To-Right)，因此我们已经十分习惯了从左向右读(Left-To-Right)。一旦遇到了从右向左读的(Right-To-Left)，便会十分的不习惯，甚至比见到火星文还难受。光看着就令人难受了，但更让人崩溃的是，还要为应用去定义Arabic语言的字串，也就是为应用添加Arabic语言支持，不但要查看大量的Arabic天书，还要]]></description><category></category></item><item><title><![CDATA[安卓DP、PX、SP相互转化代码]]></title><link>https://blog.youkuaiyun.com/ballonge/article/details/44463475</link><guid>https://blog.youkuaiyun.com/ballonge/article/details/44463475</guid><author>ballonge</author><pubDate>Thu, 19 Mar 2015 19:55:17 +0800</pubDate><description><![CDATA[不多说，直接存储代码




public

class 
DisplayUtil {  

        /** 

         *
 将px值转换为dip或dp值，保证尺寸大小不变 

         *  

         *
 @param pxValue 

         *
 @param scale 

        ]]></description><category></category></item><item><title><![CDATA[关于AlarmManager的setRepeat使用注意事项]]></title><link>https://blog.youkuaiyun.com/ballonge/article/details/44243699</link><guid>https://blog.youkuaiyun.com/ballonge/article/details/44243699</guid><author>ballonge</author><pubDate>Fri, 13 Mar 2015 17:11:09 +0800</pubDate><description><![CDATA[AlarmManager，顾名思义，闹钟管理器，即为你将要到来的某动作设置一个定时闹钟，当到达触发时间的时候（可以理解为闹钟响的时候），来触发一个任务，这个任务是一个pendingIntent。
首先我们先来看一下android API里边关于AlarmManager(点击)的描述：
This class provides access to the system alarm services]]></description><category></category></item><item><title><![CDATA[Android自动化测试——java test unit（单元测试）]]></title><link>https://blog.youkuaiyun.com/ballonge/article/details/42620251</link><guid>https://blog.youkuaiyun.com/ballonge/article/details/42620251</guid><author>ballonge</author><pubDate>Sun, 11 Jan 2015 22:48:52 +0800</pubDate><description><![CDATA[最近因为项目组底层引擎更换，需要用到大量的数据来查证新旧引擎的优劣，所以需要用到自动化测试来跑大量的数据，因此我也花了好些时间来了解学习如何使用自动化测试，现在项目测试工作也基本完成，因此一个总结关于android的单元测试。
android源码中引入了java单元测试的框架(android源码目录：libcore\junit\src\main\java\junit\framework中可见），]]></description><category></category></item><item><title><![CDATA[安卓数据存储之sharedpreferences]]></title><link>https://blog.youkuaiyun.com/ballonge/article/details/42615557</link><guid>https://blog.youkuaiyun.com/ballonge/article/details/42615557</guid><author>ballonge</author><pubDate>Sun, 11 Jan 2015 21:04:45 +0800</pubDate><description><![CDATA[安卓的数据存储四大方式，分别是SharedPreferences、SQLite、文件(File)和ContentProvider，其中SharePreferences与SQLite都是轻量级数据存储方式，但与之不同的是，SQLite是一个轻量级关系型数据库，可以实现数据的存储、按条件检索等数据库操作，而SharedPreferences是一个用map组成的，已键值对（key-value）组成的存储]]></description><category></category></item><item><title><![CDATA[Android通过jxl.jar实现对excel的操作]]></title><link>https://blog.youkuaiyun.com/ballonge/article/details/42325781</link><guid>https://blog.youkuaiyun.com/ballonge/article/details/42325781</guid><author>ballonge</author><pubDate>Thu, 01 Jan 2015 23:09:36 +0800</pubDate><description><![CDATA[最近由于需要写一个在Android平台上生成Excel报表的东西，度娘了许久之后，发现有一个叫jxl.jar可以实现java对Excel的操纵，功能十分强大，操纵起来也很方便。在这里做一个总结：
首先，要在项目实现对excel的操作，必须引入jxl.jar，首先要在项目中创建一个名字为lib的文件夹，将下载jxl.jar文件放到该目录底下，然后点击项目右键--Properties--Librar]]></description><category></category></item></channel></rss>