<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[ldhj1993的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/ldhj1993</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; ldhj1993]]></copyright><item><title><![CDATA[BitmapFactory.decodeFile(filePath, options) 返回 Null  6.0权限]]></title><link>https://blog.youkuaiyun.com/ldhj1993/article/details/72668734</link><guid>https://blog.youkuaiyun.com/ldhj1993/article/details/72668734</guid><author>ldhj1993</author><pubDate>Tue, 23 May 2017 22:42:00 +0800</pubDate><description><![CDATA[BitmapFactory.decodeFile(filePath, options)  return   null；
Android 6.0 动态权限]]></description><category></category></item><item><title><![CDATA[七牛云图片服务器搭建，对接]]></title><link>https://blog.youkuaiyun.com/ldhj1993/article/details/72667227</link><guid>https://blog.youkuaiyun.com/ldhj1993/article/details/72667227</guid><author>ldhj1993</author><pubDate>Tue, 23 May 2017 21:03:50 +0800</pubDate><description><![CDATA[七牛云图片服务器搭建]]></description><category></category></item><item><title><![CDATA[Android应用线程池最大线程数量]]></title><link>https://blog.youkuaiyun.com/ldhj1993/article/details/72666867</link><guid>https://blog.youkuaiyun.com/ldhj1993/article/details/72666867</guid><author>ldhj1993</author><pubDate>Tue, 23 May 2017 20:56:36 +0800</pubDate><description><![CDATA[我线程池的大小，定义里面的线程数量多少最合适。
如果是CPU密集型应用，则线程池大小设置为N+1 
如果是IO密集型应用，则线程池大小设置为2N+1]]></description><category></category></item><item><title><![CDATA[Java 爬取信息存入数据库]]></title><link>https://blog.youkuaiyun.com/ldhj1993/article/details/72665671</link><guid>https://blog.youkuaiyun.com/ldhj1993/article/details/72665671</guid><author>ldhj1993</author><pubDate>Tue, 23 May 2017 20:50:35 +0800</pubDate><description><![CDATA[功能包括抓取新闻信息，保存在数据库中，并根据请求返回相应数据。这里我选取的新闻来源是一点资讯（主要是他的API比较容易获取），抓取和解析选取Jsoup+Gson.运行采取Schedul 定时运行爬虫脚本。]]></description><category></category></item><item><title><![CDATA[awesome-android-tips]]></title><link>https://blog.youkuaiyun.com/ldhj1993/article/details/52924142</link><guid>https://blog.youkuaiyun.com/ldhj1993/article/details/52924142</guid><author>ldhj1993</author><pubDate>Tue, 25 Oct 2016 16:45:43 +0800</pubDate><description><![CDATA[awesome-android-tips[]原地址： 
(https://github.com/jiang111/awesome-android-tips)  English_Version:https://github.com/jiang111/awesome-android-tips/blob/master/README-en.md这里收集了大家常用的一些Android代码,持续更新中,内容来自]]></description><category></category></item><item><title><![CDATA[链式调用]]></title><link>https://blog.youkuaiyun.com/ldhj1993/article/details/52924025</link><guid>https://blog.youkuaiyun.com/ldhj1993/article/details/52924025</guid><author>ldhj1993</author><pubDate>Tue, 25 Oct 2016 16:37:49 +0800</pubDate><description><![CDATA[开发中经常会遇到给对象Been赋值，比如说一个Person对象，给他设置name 和 age 属性：Person person=new Person();
person.setName("Tom");
person.setAge(18);这种情况下每一次设置它的一个属性的时候都要调用，总的来说是  Object.method() 形式的调用。当这个对象的属性值比较少的时候还好，但是当这个对象的属性多]]></description><category></category></item><item><title><![CDATA[谷歌 Basic MVP architecture  基础MVP架构示例]]></title><link>https://blog.youkuaiyun.com/ldhj1993/article/details/52528854</link><guid>https://blog.youkuaiyun.com/ldhj1993/article/details/52528854</guid><author>ldhj1993</author><pubDate>Tue, 13 Sep 2016 19:53:09 +0800</pubDate><description><![CDATA[我们先运行看一下，可以看出这个Demo主要实现了一个记事本的功能，添加需要做的事件，并且事件分类完成，未完成，全部等一些筛选功能，业务逻辑并不是太复杂。 
那接下来我们开始看代码实现吧，首先打开项目的Manifest 看下，发现只有4个Activity（项目不大，很适合学习），启动类是 TaskActivity，那么，我们就从 TaskActivity 开始学习吧。 
进入TaskActivity]]></description><category></category></item><item><title><![CDATA[谷歌示例 Google Samples for MVP]]></title><link>https://blog.youkuaiyun.com/ldhj1993/article/details/52528691</link><guid>https://blog.youkuaiyun.com/ldhj1993/article/details/52528691</guid><author>ldhj1993</author><pubDate>Tue, 13 Sep 2016 19:36:46 +0800</pubDate><description><![CDATA[MVP已经出来好久了，看了网上很多人的文章，感觉自己有所了解，自己也在项目中实践了下，只是项目中的一个模块用MVP。但是自己总感觉怪怪的，总感觉自己的 MVP 使用的方法不对，后来才发觉是因为没有看过一个规范，之前的开发都是有各种的规范，该怎么写就怎么写，但是对于MVP，网上大把的文章，博客，但是他们的示例写的千奇百怪，本人实力低微，不好判别谁的好，谁的坏，所以迫切的想要看一下规范示例是怎么使用MV]]></description><category></category></item><item><title><![CDATA[Android ScrollView 滚动监听]]></title><link>https://blog.youkuaiyun.com/ldhj1993/article/details/52513808</link><guid>https://blog.youkuaiyun.com/ldhj1993/article/details/52513808</guid><author>ldhj1993</author><pubDate>Mon, 12 Sep 2016 15:15:24 +0800</pubDate><description><![CDATA[ScrollView在工作中是经常用到的一个控件，来看下官方给我们的说明：/**
 * Layout container for a view hierarchy that can be scrolled by the user,
 * allowing it to be larger than the physical display.  
 */它是一个可以由用户进行滚动，可以显示比物理屏幕大的]]></description><category></category></item><item><title><![CDATA[Bitmap recycle() 源码解析]]></title><link>https://blog.youkuaiyun.com/ldhj1993/article/details/52504268</link><guid>https://blog.youkuaiyun.com/ldhj1993/article/details/52504268</guid><author>ldhj1993</author><pubDate>Sun, 11 Sep 2016 15:51:09 +0800</pubDate><description><![CDATA[面试的时候你会遇到很多的问题，这些问题可能会把你难住，这恰恰是你平常没有注意到的细节或者知识点，回来后就可以针对这些方面进行学习提高。在一次面试的时候，面试官问我关于 OOM 的问题，这很常见，也没有难住我，在我阐述了我的观点后，面试官又开始对这一方面进行深入的提问（面试官往往会从一点基础常见的问题开始，慢慢深入，来了解你的水平）。接下来他又问了我 OOM 中常见的 Bitmap 处理，这个比刚刚的]]></description><category></category></item><item><title><![CDATA[Activity被回收掉之后的网络回调处理]]></title><link>https://blog.youkuaiyun.com/ldhj1993/article/details/52496067</link><guid>https://blog.youkuaiyun.com/ldhj1993/article/details/52496067</guid><author>ldhj1993</author><pubDate>Sat, 10 Sep 2016 17:37:10 +0800</pubDate><description><![CDATA[早上来到公司刚打开电脑，就被叫到会议室，召开紧急会议，线上出现重大bug,根据线上日志统计，崩溃率上升了0.3个百分点（我们项目是集成了腾讯Bugly统计日志，有兴趣的同学可以去了解下）。这个可不得了，听说领导被老板叫过去训了好久，领导憋了一肚子火，我们的日子你大概能想象得到。没办法，那的赶紧找出bug来源，解决掉后赶紧发修复补丁（感谢现在的热修复技术，让我们免除了再次发包的痛苦）。经过我们的查询，]]></description><category></category></item><item><title><![CDATA[弹出浮层基类 BaseFloating 封装]]></title><link>https://blog.youkuaiyun.com/ldhj1993/article/details/52183559</link><guid>https://blog.youkuaiyun.com/ldhj1993/article/details/52183559</guid><author>ldhj1993</author><pubDate>Thu, 11 Aug 2016 16:02:24 +0800</pubDate><description><![CDATA[之前在一个技术群里面尤为同学请教大家这种弹出窗怎么做（如下图所示），他是用的PopWindow实现的，但是PopWindow有很多地方不符合他的要求，比如弹出的起始位置，弹出的动画效果。我们项目中也会有这种弹出浮层的需求，举个例子，下面是仿淘宝选择规格的弹出浮层效果，不仅仅是这一处，整个项目中也会有很多类似的弹出浮层效果，为了方便，我们就需要有一个弹出浮层基类，来简化我们的代码。]]></description><category></category></item><item><title><![CDATA[不要将Android 自定义 View 想复杂]]></title><link>https://blog.youkuaiyun.com/ldhj1993/article/details/52181119</link><guid>https://blog.youkuaiyun.com/ldhj1993/article/details/52181119</guid><author>ldhj1993</author><pubDate>Thu, 11 Aug 2016 11:34:50 +0800</pubDate><description><![CDATA[Android自定义View是在开发中经常会用到的，当我们遇到一些原声控件无法达到的效果，我们就会自定义一个View，网上有太多太多关于自定义View的文章，我本来是不准备写的，但是之前遇到了一件事，发现有些人把自定义View想复杂了。]]></description><category></category></item><item><title><![CDATA[GitHub 托管代码 团队进行工作]]></title><link>https://blog.youkuaiyun.com/ldhj1993/article/details/52144227</link><guid>https://blog.youkuaiyun.com/ldhj1993/article/details/52144227</guid><author>ldhj1993</author><pubDate>Sun, 07 Aug 2016 19:07:35 +0800</pubDate><description><![CDATA[我们公司最近开始使用GitHub 托管代码，当然公司这种创建私有库是要收费的，不同于个人上传共享自己代码，在这里我就介绍下如何使用GitHub来进行团队开发。 
        首先加入你们公司也是用GitHub 托管代码，那么入股ONI参与其中，那就需要加入你所在公司的 Organization ，这个呢就需要你们公司相关负责人来拉你进入，把你添加进 公司所在的 Organization 中后，你]]></description><category></category></item><item><title><![CDATA[Android Studio Fork github 代码]]></title><link>https://blog.youkuaiyun.com/ldhj1993/article/details/52143147</link><guid>https://blog.youkuaiyun.com/ldhj1993/article/details/52143147</guid><author>ldhj1993</author><pubDate>Sun, 07 Aug 2016 16:18:51 +0800</pubDate><description><![CDATA[GitHub 想必大家都知道，今天就来介绍下如何利用GitHub Fork 别人的代码以及如何进行项目管理。Google 官方推出的Android Studio已经集成了GitHub，接下来一起看下： 
      首先我们需要在Configure 里的Setting 中 进行相关的配置。首先你需要安装好 Git ，网上自己去下载安装好，在Setting 中奖 git.exe路径填好，填好后点击下右]]></description><category></category></item><item><title><![CDATA[错误： 非法字符:'\ufeff']]></title><link>https://blog.youkuaiyun.com/ldhj1993/article/details/52137775</link><guid>https://blog.youkuaiyun.com/ldhj1993/article/details/52137775</guid><author>ldhj1993</author><pubDate>Sat, 06 Aug 2016 18:25:27 +0800</pubDate><description><![CDATA[今天刚到公司，拉了下代码，准备开始工作，突然就报了个编译不通过，怪哉，还是所谓的非法字符。仔细看了下，原来是文件格式被更改了。远啦昨天晚上提交代码的时候有个同事代码发生了冲突，他在用文件编辑器解决冲突后保存后就提交了，而那个文件编辑器默认保存的格式不符合Studio编译条件，导致了这个错误。而Studio与Eclipse不同的是Eclipse会自动将文件转化为无编码格式，但是Studio不行，所以编]]></description><category></category></item><item><title><![CDATA[Android 录屏及转 Gif]]></title><link>https://blog.youkuaiyun.com/ldhj1993/article/details/52137662</link><guid>https://blog.youkuaiyun.com/ldhj1993/article/details/52137662</guid><author>ldhj1993</author><pubDate>Sat, 06 Aug 2016 17:59:55 +0800</pubDate><description><![CDATA[经常在别人的博客或者GitHub上能看到代码运行的效果gif图，很直观。我在网上看了下，很多都是用模拟器录屏，对此我很无奈，因为我不喜欢模拟器，真机多爽啊。终于，我找到了真机上也能录屏的方法，利用Android Studio（这个是真心强大），简单，方便，快捷。就是在Android Studio 的LogCat 窗口左边有个 Screen Record按钮，如下图： 
  当连上测试机后，Scree]]></description><category></category></item><item><title><![CDATA[Android 关于监听键盘状态的一个偏方]]></title><link>https://blog.youkuaiyun.com/ldhj1993/article/details/51968812</link><guid>https://blog.youkuaiyun.com/ldhj1993/article/details/51968812</guid><author>ldhj1993</author><pubDate>Wed, 20 Jul 2016 15:28:14 +0800</pubDate><description><![CDATA[早晨刚来公司，同事就在群里面求助一个问题，说是昨晚加班到9点多也没解决，直接将我吓尿，但是本着雷锋精神，即使是再大的困难我们也要帮同事解决嘛，毕竟同事还答应中午一杯奶茶呢，拼了······
   听同事描述了下，了解到原来是监听键盘状态的问题，妈的，键盘状态，有过这类开发经历的人都会吐槽的，这特么的就是个坑，如果你百度会出来一大堆博客，文章，各种解决方案，但是呢，其中很少有对的，同事也说了，昨晚加班]]></description><category></category></item><item><title><![CDATA[release 包 混淆 Serializable]]></title><link>https://blog.youkuaiyun.com/ldhj1993/article/details/51919954</link><guid>https://blog.youkuaiyun.com/ldhj1993/article/details/51919954</guid><author>ldhj1993</author><pubDate>Fri, 15 Jul 2016 17:55:22 +0800</pubDate><description><![CDATA[今天同事在工作中遇到个奇葩的问题，在打release包交付测试的后发现除了个问题，有一块View 在release包下不显示，被测试提了bug,但是在测试机上运行确实一点问题没有，我也被吸引过去了，如此奇葩的bug,我得涨涨见识，我就过去和他一起查看。 
     由于我们将release包关闭了log日志，所以我们也无法连接查看打印数据，一开始我提议测试机连上后台API开发的电脑IP，抓接口，看返]]></description><category></category></item><item><title><![CDATA[Log 工具类]]></title><link>https://blog.youkuaiyun.com/ldhj1993/article/details/51896719</link><guid>https://blog.youkuaiyun.com/ldhj1993/article/details/51896719</guid><author>ldhj1993</author><pubDate>Wed, 13 Jul 2016 11:45:26 +0800</pubDate><description><![CDATA[在平常的开发调试过程中，我们是离不开 Log 的，但是在发布的正式包中，一般是需要将 Log 关闭的，如果我们在各个类中直接调用的是 Log 打印，在发包时就必须一行行的删除，浪费大把的时间还不一定能够保证删除干净。

      其实解决方法很简单，封装一个Log工具类就可以了，比如说这样



public class LogUtil {      // Errors + warn]]></description><category></category></item></channel></rss>