<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[米小阳的博客]]></title><description><![CDATA[积硅步，至千里。]]></description><link>https://blog.youkuaiyun.com/denglusha737</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; denglusha737]]></copyright><item><title><![CDATA[RecyclerView嵌套ViewPager下的Wrap_Content问题]]></title><link>https://blog.youkuaiyun.com/denglusha737/article/details/103937638</link><guid>https://blog.youkuaiyun.com/denglusha737/article/details/103937638</guid><author>denglusha737</author><pubDate>Sat, 11 Jan 2020 17:39:02 +0800</pubDate><description><![CDATA[文章目录


]]></description><category></category></item><item><title><![CDATA[traceview使用总结]]></title><link>https://blog.youkuaiyun.com/denglusha737/article/details/99695374</link><guid>https://blog.youkuaiyun.com/denglusha737/article/details/99695374</guid><author>denglusha737</author><pubDate>Sat, 17 Aug 2019 17:16:04 +0800</pubDate><description><![CDATA[文章目录1.traceview的用途2.生成trace文件的三种方式（1）代码生成（2）使用android studio生成（3）DDMS生成3.使用traceview打开trace文件4.分析trace文件
1.traceview的用途
traceview是Android sdk中的一个工具，用于分析计算性能，跟踪方法耗时导致的卡顿问题。它将traceview文件转为图形，直观的反应出代码的执行...]]></description><category></category></item><item><title><![CDATA[Android 图片裁剪之三剑式（二）]]></title><link>https://blog.youkuaiyun.com/denglusha737/article/details/94170633</link><guid>https://blog.youkuaiyun.com/denglusha737/article/details/94170633</guid><author>denglusha737</author><pubDate>Sat, 29 Jun 2019 18:14:48 +0800</pubDate><description><![CDATA[文章目录1.PorterDuffXfermode 简介2.PorterDuffXfermode 类型介绍3.PorterDuffXfermode 使用场景圆形头像叠加图片还可以实现橡皮擦和加载效果等，这里就不具体叙述了。4.PorterDuffXfermode 在Drawable中的应用
1.PorterDuffXfermode 简介
在《Android 图片裁剪之三剑式（一）》中讲述了图片裁剪的...]]></description><category></category></item><item><title><![CDATA[Android 图片裁剪之三剑式（一）]]></title><link>https://blog.youkuaiyun.com/denglusha737/article/details/93344678</link><guid>https://blog.youkuaiyun.com/denglusha737/article/details/93344678</guid><author>denglusha737</author><pubDate>Sat, 22 Jun 2019 18:09:12 +0800</pubDate><description><![CDATA[文章目录引言1.第一式：裁剪画布后，再画上图片Canvas.clipPath--&gt; Canvas.drawBitmap第二式：设置画笔的着色器为BitmapShader，直接画图paint.setShader --&gt; canvas.drawCicle/drawRoundRect
引言
项目开发中显示头像大多都是圆形，以前使用第三方框架RoundedImageView 实现圆形头像，后来...]]></description><category></category></item><item><title><![CDATA[记一次ANR文件的导出]]></title><link>https://blog.youkuaiyun.com/denglusha737/article/details/86706909</link><guid>https://blog.youkuaiyun.com/denglusha737/article/details/86706909</guid><author>denglusha737</author><pubDate>Wed, 30 Jan 2019 18:03:05 +0800</pubDate><description><![CDATA[文章目录1.老版Android系统 anr的导出2.高版本系统 导出3.ANR的缘由
1.老版Android系统 anr的导出
在项目目录下或app下运行命令：
 adb pull data/anr/traces.txt

测试了华为p7（Android 5.1.1）和荣耀v10（Android 9），发现都能正常导出。但是遇到华为mate10、mate10 pro 一直都导出失败。
adb: e...]]></description><category></category></item><item><title><![CDATA[2018这一年]]></title><link>https://blog.youkuaiyun.com/denglusha737/article/details/86360436</link><guid>https://blog.youkuaiyun.com/denglusha737/article/details/86360436</guid><author>denglusha737</author><pubDate>Sat, 12 Jan 2019 17:32:25 +0800</pubDate><description><![CDATA[文章目录18年的DoList19年的Expectations
18年的DoList
写这篇总结，已是19年1月中旬了，总算不是太晚，还来得及梳理这一年的“风雨飘摇”。
1.说说上一年的目标达成情况
结果：不及格。
技术上python断篇了，一年都没怎么看，算是被动清零。投资上这一年也没看书，收获寥寥；心态上可能有那么一点点成长，不过老夫的肉眼还没看出来。
2.那18年我都干了啥
上半年一直是“兢兢...]]></description><category></category></item><item><title><![CDATA[Android组件化探索]]></title><link>https://blog.youkuaiyun.com/denglusha737/article/details/84892578</link><guid>https://blog.youkuaiyun.com/denglusha737/article/details/84892578</guid><author>denglusha737</author><pubDate>Sat, 08 Dec 2018 14:39:42 +0800</pubDate><description><![CDATA[Android组件化探索目录组件化的优势组件化的步骤组件化的注意事项[代码地址](https://github.com/RangerAnan/AndroidReView)
目录
组件化的优势
组件化简单的说就是：能任意使用项目中的module来合并一个app.
实际开发中，遇到业务很复杂，且业务线较多时，我们往往会将项目模块化。但是有时候仅仅模块化，依然解决不了更深城的需求，举个栗子来说下：
刚进...]]></description><category></category></item><item><title><![CDATA[WebView的Cookie跨域问题]]></title><link>https://blog.youkuaiyun.com/denglusha737/article/details/83684488</link><guid>https://blog.youkuaiyun.com/denglusha737/article/details/83684488</guid><author>denglusha737</author><pubDate>Sat, 03 Nov 2018 14:02:25 +0800</pubDate><description><![CDATA[案例

前几天遇到这样一个问题：前端开发了一个h5页面，在webView中加载时，发现获取不到 设置的cookie信息.原以为是没设置好，将支持的一级域名梳理了一遍，循环设置；其次客户端自己测试，通过getCookie(url)能正常获取，但是抓包发现页面网络请求的cookie中并没有数据，一时非常奇怪。

 

继续跟踪，发现页面地址与页面中的网络请求地址，域名不一致。如页面地址www.badi...]]></description><category></category></item><item><title><![CDATA[ListView开发知识整理]]></title><link>https://blog.youkuaiyun.com/denglusha737/article/details/79712798</link><guid>https://blog.youkuaiyun.com/denglusha737/article/details/79712798</guid><author>denglusha737</author><pubDate>Tue, 27 Mar 2018 15:56:27 +0800</pubDate><description><![CDATA[    listView在开发中使用的太多了，但是不少知识还是经常记不住，因今天把listView的一些方法和开发问题，统一整理记录下来。   一、方法或属性    1.stackFromBottom属性：true表示从列表底部开始向上排列。但要注意它是从上往下递增，新数据处在底部。        2.setTranscriptMode：设置数据更新时，滑动模式。有三个值：        alwa...]]></description><category></category></item><item><title><![CDATA[window下Android项目集成React Native的正确姿势]]></title><link>https://blog.youkuaiyun.com/denglusha737/article/details/79153113</link><guid>https://blog.youkuaiyun.com/denglusha737/article/details/79153113</guid><author>denglusha737</author><pubDate>Wed, 24 Jan 2018 19:30:52 +0800</pubDate><description><![CDATA[      React Native的项目中分为Android与IOS，但是若在现有的Android项目中，集成RN，不能按照那个包结构来，我们统一在app文件夹下处理。一、集成步骤：   1.添加js文件      （1）在app文件夹下输入命令 npm init，生成package.json文件。这里会让你输入name等信息，除了name，其他可不输入。打开package.json文件，在sc...]]></description><category></category></item><item><title><![CDATA[ScheduledThreadPoolExecutor浅谈]]></title><link>https://blog.youkuaiyun.com/denglusha737/article/details/78973487</link><guid>https://blog.youkuaiyun.com/denglusha737/article/details/78973487</guid><author>denglusha737</author><pubDate>Thu, 04 Jan 2018 17:33:10 +0800</pubDate><description><![CDATA[ScheduledThreadPoolExecutor称作多线程调度器，继承自ThreadPoolExecutor，添加了按计划执行线程操作的功能，如：延迟，定时，周期执行任务。
     一、它继承自ThreadPoolExecutor，首先来看看它的家族。
      
      二、调度方法

      （1）schedule(Runnable , delay, TimeUni]]></description><category></category></item><item><title><![CDATA[SQLite数据类型的注意事项]]></title><link>https://blog.youkuaiyun.com/denglusha737/article/details/78570235</link><guid>https://blog.youkuaiyun.com/denglusha737/article/details/78570235</guid><author>denglusha737</author><pubDate>Sat, 18 Nov 2017 18:06:36 +0800</pubDate><description><![CDATA[sqlite使用动态数据类型，即值的数据类型与值相关，与其容器无关。
  1.存储类（Storage Class）：数据保存到文件后的表现形式。有：

    NULL - 空值
    INTERGER - 有符号整数类型
    REAL - 浮点数类型
    TEXT - 字符串（其编码取决于DB的编码）
    BLOB - 二进制表示。
    sqlite通过值的类型]]></description><category></category></item><item><title><![CDATA[git使用总结]]></title><link>https://blog.youkuaiyun.com/denglusha737/article/details/78444370</link><guid>https://blog.youkuaiyun.com/denglusha737/article/details/78444370</guid><author>denglusha737</author><pubDate>Sat, 04 Nov 2017 16:39:07 +0800</pubDate><description><![CDATA[git的命令不少，开发这么长时间，很多时候还是记不住，今天把开发中常见的用法记录下来，不能每次都去百度不是。这篇博客会持续更新，不断解锁git更多姿势。

 1.怎么提交代码到gitHup?

 可以在gitHup创建一个仓库，拉取项目后，剪切下面的.git文件夹，放到自己的工程里。然后就可以提交代码到gitHup了。



 2.本地提交成功(commit)，远程push失败。以后...]]></description><category></category></item><item><title><![CDATA[线程同步与锁（一）]]></title><link>https://blog.youkuaiyun.com/denglusha737/article/details/78353870</link><guid>https://blog.youkuaiyun.com/denglusha737/article/details/78353870</guid><author>denglusha737</author><pubDate>Thu, 26 Oct 2017 14:55:40 +0800</pubDate><description><![CDATA[im项目中都会存在离线消息，我们在接受到消息后，开启子线程，处理相关业务逻辑。因为业务逻辑需遵循一定的处理顺序，我们将部分代码加上了锁。但是在离线消息太多时，却出现了线程问题：OutOfMemoryError: pthread_create (1040KB stack) failed: Try again 本地创建线程时发现内存不够，栈内存溢出。话费了不少时间，一方面添加了队列，另一方面将项目中的]]></description><category></category></item><item><title><![CDATA[通知栏开发与适配Android8.0]]></title><link>https://blog.youkuaiyun.com/denglusha737/article/details/77915472</link><guid>https://blog.youkuaiyun.com/denglusha737/article/details/77915472</guid><author>denglusha737</author><pubDate>Sat, 09 Sep 2017 15:22:56 +0800</pubDate><description><![CDATA[1.Android通知栏在项目开发中，还是用的比较多的，一般是这三个步骤来做Android通知栏：
    （1）获取通知栏管理器对象 

   NotificationManager mNotificationManager = (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE);   （2）创建通知对象]]></description><category></category></item><item><title><![CDATA[gradle差异化打包]]></title><link>https://blog.youkuaiyun.com/denglusha737/article/details/77885629</link><guid>https://blog.youkuaiyun.com/denglusha737/article/details/77885629</guid><author>denglusha737</author><pubDate>Thu, 07 Sep 2017 19:29:41 +0800</pubDate><description><![CDATA[前几天碰到这样的需求，需要对当前的项目进行扩展，以其为模板，打包出多个项目来。比如我们的项目是一个养殖的app，现在需要扩展出细分的多个应用：养鱼的，养鸡的，养羊的，养猪的...同一份代码，我们只需要对其差异化的地方单独配置就可以了，我们在app下的build.gradle中配置就可以，通过配置差异化渠道来实现。
      productFlavors {
        ji {]]></description><category></category></item><item><title><![CDATA[viewpager一屏展示多个视图]]></title><link>https://blog.youkuaiyun.com/denglusha737/article/details/74062237</link><guid>https://blog.youkuaiyun.com/denglusha737/article/details/74062237</guid><author>denglusha737</author><pubDate>Sat, 01 Jul 2017 14:30:16 +0800</pubDate><description><![CDATA[最近看到一个应用的banner写的很有意思，在一个viewpager中可以看见左右两个item的部分视图，研究了下，发现实现其实很简单，记述如下。
   先看下效果图：

   



  下面来说下实现过程：
    1.viewpager及其父控件的布局加上该属性clipChildren=“false”，clipChildren属性表示子view在绘制时不去裁切他们的视图范围。]]></description><category></category></item><item><title><![CDATA[Glide异常：You cannot load start a load for a destory activity]]></title><link>https://blog.youkuaiyun.com/denglusha737/article/details/71279855</link><guid>https://blog.youkuaiyun.com/denglusha737/article/details/71279855</guid><author>denglusha737</author><pubDate>Sat, 06 May 2017 19:22:50 +0800</pubDate><description><![CDATA[使用glide加载图片，在一个Activity中使用了glide加载图片后，首次进入页面显示正常，退出二次进入崩溃，直接报参数异常：You cannot  start a load for on a destory activity。glide是统一封装好的，在其他页面都正常显示，查看了代码，也没发现问题。
    网上找了资料，给出了三个解答：
       1.将glide.with(co]]></description><category></category></item><item><title><![CDATA[Android录制小视频（三）]]></title><link>https://blog.youkuaiyun.com/denglusha737/article/details/71277826</link><guid>https://blog.youkuaiyun.com/denglusha737/article/details/71277826</guid><author>denglusha737</author><pubDate>Sat, 06 May 2017 18:56:34 +0800</pubDate><description><![CDATA[之前的文章讲到半屏录制小视频，不过微信不已经全屏了么，我们的项目也要与时俱进不是。在仿微信全屏录制的过程中，有两点需要注意的地方：
     1.camera的预览大小设置
     这个依然采取以前的策略，在支持的预览大小中，选择与当前屏幕宽高比最相近的一个preViewSize，保证surfaceView中画面不会太失真。经过测试发现，手机支持的预览尺寸里还是有很接近屏幕宽高比的，这也可能]]></description><category></category></item><item><title><![CDATA[Android录制小视频（二）]]></title><link>https://blog.youkuaiyun.com/denglusha737/article/details/70338055</link><guid>https://blog.youkuaiyun.com/denglusha737/article/details/70338055</guid><author>denglusha737</author><pubDate>Fri, 21 Apr 2017 19:50:14 +0800</pubDate><description><![CDATA[之前讲了camera的相关问题，今天把mediaRecorder总结一下
1.视频的videoSize设置
        视频的录制尺寸设置考虑的方面比较多，说下我在这里碰到的一些坑。初次以camera的预览尺寸作为videoSize的，经过测试发现，部分手机（酷派）录制时直接崩溃了，原因是得到的bestPreviewSize不匹配该手机支持的videoSize。后来找到这个方法：getSu]]></description><category></category></item></channel></rss>