<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[Roben518的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/Roben518</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; Roben518]]></copyright><item><title><![CDATA[DexIndexOverflowException两种情况的解决方法]]></title><link>https://blog.youkuaiyun.com/Roben518/article/details/78666994</link><guid>https://blog.youkuaiyun.com/Roben518/article/details/78666994</guid><author>Roben518</author><pubDate>Wed, 29 Nov 2017 16:39:08 +0800</pubDate><description><![CDATA[如果你的Android项目足够大，又或者你引用了许多第三库，那么一定会遇到DexIndexOverflowException，在Gradle构建时报错：


UNEXPECTED TOP-LEVEL EXCEPTION: 
com.android.dex.DexIndexOverflowException: Cannot merge new index 65562 into a non-j]]></description><category></category></item><item><title><![CDATA[de.greenrobot:eventbus:3.0.0-beta1混淆的坑]]></title><link>https://blog.youkuaiyun.com/Roben518/article/details/77483683</link><guid>https://blog.youkuaiyun.com/Roben518/article/details/77483683</guid><author>Roben518</author><pubDate>Tue, 22 Aug 2017 18:23:04 +0800</pubDate><description><![CDATA[项目中已经集成EventBus3.0-beta测试版，没去更新正式版，混淆出现上面的bug
Markdown和扩展Markdown简洁的语法
Caused by: de.greenrobot.event.e: Subscriber class com.klsw.betterlive.module.login.StartActivity and its super classes have no pu]]></description><category></category></item><item><title><![CDATA[Android studio和Eclipse分别生成jar包并混淆jar包]]></title><link>https://blog.youkuaiyun.com/Roben518/article/details/59539436</link><guid>https://blog.youkuaiyun.com/Roben518/article/details/59539436</guid><author>Roben518</author><pubDate>Thu, 02 Mar 2017 16:20:12 +0800</pubDate><description><![CDATA[开发者有时在开发项目需要提供SDK给别人调用，这就需要开发者把自己代码做个jar或者lib或者aar形式提供给出去，在eclipse中往往需要把代码生成jar编译混淆下后和资源文件一并提供，还有一种是做成library形式提供出去，而在studio中我们可以借助gradle生成aar(可包含资源)和jar两种方式去生成我们需要提供的SDK。

Eclipse


创建一个新项目并编写SD]]></description><category></category></item><item><title><![CDATA[Android 静默安装和智能安装的实现方法]]></title><link>https://blog.youkuaiyun.com/Roben518/article/details/56492312</link><guid>https://blog.youkuaiyun.com/Roben518/article/details/56492312</guid><author>Roben518</author><pubDate>Wed, 22 Feb 2017 18:09:02 +0800</pubDate><description><![CDATA[1 简介

最近研究了Android的静默安装和智能安装，于是写博客记录一下。 
静默安装就是无声无息的在后台安装apk，没有任何界面提示。 
智能安装就是有安装界面，但全部是自动的，不需要用户去点击。 
首先强调两点：

静默安装必须要root权限智能安装必须要用户手动开启无障碍服务

2 原理

静默安装、卸载的原理就是利用pm install命令来安装apk，pm un]]></description><category></category></item><item><title><![CDATA[android:process的坑!!!]]></title><link>https://blog.youkuaiyun.com/Roben518/article/details/55188795</link><guid>https://blog.youkuaiyun.com/Roben518/article/details/55188795</guid><author>Roben518</author><pubDate>Wed, 15 Feb 2017 09:31:50 +0800</pubDate><description><![CDATA[许多知识知其然而不知其所以然，这也许就是大神与菜鸟的区别吧。

最近排查问题时发现一个问题： 一个在 Application 中启动的定时任务在运行时会被调用多次，诡异的很，最后发现是一个前人留下的坑，原因就是对 
Android:process 不知其所以然造成的。

android:process 属性

关于 android:process 属性，相信大家都不陌生，androi]]></description><category></category></item><item><title><![CDATA[Android 在一个程序中启动另一个程序]]></title><link>https://blog.youkuaiyun.com/Roben518/article/details/53943028</link><guid>https://blog.youkuaiyun.com/Roben518/article/details/53943028</guid><author>Roben518</author><pubDate>Fri, 30 Dec 2016 14:51:43 +0800</pubDate><description><![CDATA[Android 开发有时需要在一个应用中启动另一个应用，比如Launcher加载所有的已安装的程序的列表，当点击图标时可以启动另一个应用。
一般我们知道了另一个应用的包名和MainActivity的名字之后便可以直接通过如下代码来启动：
Intent intent = new Intent(Intent.ACTION_MAIN);
intent.addCategory(Intent.CATE]]></description><category></category></item><item><title><![CDATA[判断手机是否有root权限]]></title><link>https://blog.youkuaiyun.com/Roben518/article/details/53931043</link><guid>https://blog.youkuaiyun.com/Roben518/article/details/53931043</guid><author>Roben518</author><pubDate>Thu, 29 Dec 2016 17:57:37 +0800</pubDate><description><![CDATA[/**
     * 判断当前手机是否有ROOT权限
     * @return
     */
    public boolean isRoot(){
        boolean bool = false;

        try{
            if ((!new File("/system/bin/su").exists()) && (!new File("/system]]></description><category></category></item><item><title><![CDATA[java反射机制 以及通过反射获得类的变量字段，方法，构造函数]]></title><link>https://blog.youkuaiyun.com/Roben518/article/details/53817468</link><guid>https://blog.youkuaiyun.com/Roben518/article/details/53817468</guid><author>Roben518</author><pubDate>Thu, 22 Dec 2016 17:26:29 +0800</pubDate><description><![CDATA[反射机制

首先获得类模板的方式有三种：
1. Class cls=对象名.getClass();//使用这种方式获取类模板有局限性：必须现有对象才能得到类模板对象
2.Class cls=Class.forName(包名+类名的字符串);//最常用的，只要知道完全限定名(包名+类名)字符串即可获取类模板对象
3.Class cls=类名.class;//最简单,也比较常用，但必须指定类]]></description><category></category></item><item><title><![CDATA[Android 直播RTMP流]]></title><link>https://blog.youkuaiyun.com/Roben518/article/details/52588169</link><guid>https://blog.youkuaiyun.com/Roben518/article/details/52588169</guid><author>Roben518</author><pubDate>Mon, 19 Sep 2016 18:26:11 +0800</pubDate><description><![CDATA[原文链接 : How To Stream RTMP live in Android原文作者 : Mohit Gupt译文出自 : 开发技术前线 www.devtf.cn译者 : ayyb1988校对者: chaossss状态 : 完成




在android上，视频/音频流直播是极少有人关注的一部分。每当我们讨论流媒体，RTMP(Real Time Messaging Protocol]]></description><category></category></item><item><title><![CDATA[Android应用进程长存的可行性]]></title><link>https://blog.youkuaiyun.com/Roben518/article/details/52538042</link><guid>https://blog.youkuaiyun.com/Roben518/article/details/52538042</guid><author>Roben518</author><pubDate>Wed, 14 Sep 2016 14:58:29 +0800</pubDate><description><![CDATA[如何能让我们的应用能够在系统后台持续地运行是一个自Android从娘（ma）胎（bi）里出来时就议论不停的话题，而且这似乎成了一个牛（liu）逼（mang）应用标配的功能。每当有人问起爱哥这个沉重的问题时我都会选择避而不答，原因有二，一是我并不曾深入地研究过相关功能，二是本人作为一个有情怀的开发者是不提倡让应用去占用没必要且吃紧的系统资源。不过最近一个偶然的机会让我不得不去正视这个问题，那就是在A]]></description><category></category></item><item><title><![CDATA[Android进程保活招式总结]]></title><link>https://blog.youkuaiyun.com/Roben518/article/details/52525446</link><guid>https://blog.youkuaiyun.com/Roben518/article/details/52525446</guid><author>Roben518</author><pubDate>Tue, 13 Sep 2016 14:14:02 +0800</pubDate><description><![CDATA[目前市面上的应用，貌似除了微信和手Q都会比较担心被用户或者系统（厂商）杀死问题。本文对 Android 进程拉活进行一个总结。

Android 进程拉活包括两个层面：

A. 提供进程优先级，降低进程被杀死的概率

B. 在进程被杀死后，进行拉活

本文下面就从这两个方面做一下总结。

1. 进程的优先级

Android 系统将尽量长时间地保持应用进程，但为了新建进程或]]></description><category></category></item><item><title><![CDATA[AccessibilityService的学习,抢红包实现]]></title><link>https://blog.youkuaiyun.com/Roben518/article/details/52523668</link><guid>https://blog.youkuaiyun.com/Roben518/article/details/52523668</guid><author>Roben518</author><pubDate>Tue, 13 Sep 2016 10:28:58 +0800</pubDate><description><![CDATA[微信红包自打出世以来就极其受欢迎,抢红包插件可谓红极一时.今天,我们重新谈谈抢红包插件的哪些事儿.本质上,抢红包插件的原理不难理解,其过程就是在收到红包时,自动模拟点击.做过自动化UI测试的童鞋应该非常熟悉了.那么问题来了,我们怎么知道有没有红包,又怎么模拟点击操作呢?在PC端我们有按键精灵,那么在Android设备上呢?话说也偶然,Google为了让Android系统更实用,为用户提供了无障碍辅]]></description><category></category></item><item><title><![CDATA[Android画折线图、柱状图、饼图（使用achartengine.jar）]]></title><link>https://blog.youkuaiyun.com/Roben518/article/details/52383149</link><guid>https://blog.youkuaiyun.com/Roben518/article/details/52383149</guid><author>Roben518</author><pubDate>Wed, 31 Aug 2016 11:19:16 +0800</pubDate><description><![CDATA[目录(?)[-]

所需要的jar包achartenginejar折线代码布局文件就不上传了很简单

另一种线的渲染器
扇形图代码柱状图代码属性总结部分代码新测试代码下载地址





自从用了画折线的jar包之后，就不想再用canvas画布去画了，编程就是要站在巨人的肩膀上。




所需要的jar包achartenginejar折线代码布局文件就不上传了很简单]]></description><category></category></item><item><title><![CDATA[Shell命令总结]]></title><link>https://blog.youkuaiyun.com/Roben518/article/details/52383017</link><guid>https://blog.youkuaiyun.com/Roben518/article/details/52383017</guid><author>Roben518</author><pubDate>Wed, 31 Aug 2016 11:08:55 +0800</pubDate><description><![CDATA[这段时间用到了Liunx的东西，学习了一写应用，刚开始不熟悉Liunx就从页面开始使用，后期开始使用shell命令来操作了。先记录一下用到的命令行：

一、文件/文件夹管理 

ls 列出当前目录文件（不包括隐含文件） 
ls -a 列出当前目录文件（包括隐含文件） 
ls -l 列出当前目录下文件的详细信息 

cd .. 回当前目录的上一级目录 
cd - 回上一次所在的目录]]></description><category></category></item><item><title><![CDATA[Android美团多渠道打包]]></title><link>https://blog.youkuaiyun.com/Roben518/article/details/52351631</link><guid>https://blog.youkuaiyun.com/Roben518/article/details/52351631</guid><author>Roben518</author><pubDate>Mon, 29 Aug 2016 11:39:19 +0800</pubDate><description><![CDATA[以umeng为例，官方的渠道配置方式：





[html] view
 plain copy






  
meta-data  
    android:name="UMENG_APPKEY"  
    android:value="***************">  
meta-data>  
   
 meta-data   
     ]]></description><category></category></item><item><title><![CDATA[Android自定义饼状图]]></title><link>https://blog.youkuaiyun.com/Roben518/article/details/52351538</link><guid>https://blog.youkuaiyun.com/Roben518/article/details/52351538</guid><author>Roben518</author><pubDate>Mon, 29 Aug 2016 11:30:24 +0800</pubDate><description><![CDATA[1 先上效果图



2 分析

第一看看到这个图，有过画扇形经验的同学会不屑，这个不简单吗？主要就是将所有的值相加，然后用每个值去除于总值，得到对于的一个扇形的角度，逐个画上去就好。这个说法大体是对的，但等到真正实施，还是有些小细节需要注意的。
for (int i = 0; i numbers.size(); i++) {
    if (i == numbers.size() ]]></description><category></category></item><item><title><![CDATA[Android GC Log]]></title><link>https://blog.youkuaiyun.com/Roben518/article/details/52315067</link><guid>https://blog.youkuaiyun.com/Roben518/article/details/52315067</guid><author>Roben518</author><pubDate>Thu, 25 Aug 2016 15:33:50 +0800</pubDate><description><![CDATA[安卓是为移动设备设计的，所以开发者应该时刻留意app占用的RAM（Random-Access Memory）。尽管Dalvik和ART会例行垃圾回收（GC），但并不代表开发者可以忽略app的内存使用情况（什么时候在哪里分配/释放了多少内存）。为了确保稳定的用户体验，让系统能够在多个app之间迅速切换，app不要在用户没有和它交互时消耗不必要的内存，这一点很重要

P.S.Dalvik（Andr]]></description><category></category></item><item><title><![CDATA[Android 调用浏览器 出现activitynotfoundexception解决思路的总结]]></title><link>https://blog.youkuaiyun.com/Roben518/article/details/52302116</link><guid>https://blog.youkuaiyun.com/Roben518/article/details/52302116</guid><author>Roben518</author><pubDate>Wed, 24 Aug 2016 16:58:42 +0800</pubDate><description><![CDATA[Intent intent = new Intent();
intent.setAction(Intent.ACTION_VIEW);
intent.setData(Uri.parse(url));
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
intent.setPackage(mTopPkgName);

mContext.star]]></description><category></category></item><item><title><![CDATA[Android程序自启动小结]]></title><link>https://blog.youkuaiyun.com/Roben518/article/details/52278879</link><guid>https://blog.youkuaiyun.com/Roben518/article/details/52278879</guid><author>Roben518</author><pubDate>Mon, 22 Aug 2016 17:43:09 +0800</pubDate><description><![CDATA[揭秘：手机软件自启原理

大家都会想知道，这些软件不是我主动运行的，到底是如何自己运行起来的呢？接下来我们将简单讲讲软件自启的方式和原理。

以下内容有些偏技术，读起来可能有些晦涩，还请耐心拜读。

不过在介绍之前，先要铺垫一下：Android四大基本组件分别是Activity，Service服务,Content Provider内容提供者，BroadcastReceiver广播接收器]]></description><category></category></item><item><title><![CDATA[MVP架构设计]]></title><link>https://blog.youkuaiyun.com/Roben518/article/details/52278220</link><guid>https://blog.youkuaiyun.com/Roben518/article/details/52278220</guid><author>Roben518</author><pubDate>Mon, 22 Aug 2016 16:47:26 +0800</pubDate><description><![CDATA[MVPMVP简介

ModelViewPresenterActivityView
MVP各层关系梳理

   Model与Presenter   View与Presenter   Presenter完成的交互   Model与View之间的交互
MVP适用环境MVPRetrofitRxJava

加入Retrofit

创建interface修改Model层内容修改Presen]]></description><category></category></item></channel></rss>