<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[JustinNick的博客]]></title><description><![CDATA[]]></description><link>https://blog.csdn.net/JustinNick</link><language>zh-cn</language><generator>https://blog.csdn.net/</generator><copyright><![CDATA[Copyright &copy; JustinNick]]></copyright><item><title><![CDATA[无侵入式获取全局Context]]></title><link>https://blog.csdn.net/JustinNick/article/details/103310441</link><guid>https://blog.csdn.net/JustinNick/article/details/103310441</guid><author>JustinNick</author><pubDate>Fri, 29 Nov 2019 14:47:32 +0800</pubDate><description><![CDATA[本文参考自code小生博客

当我们在使用第三方库，或者自己封装库，如果需要需要用到Context时，一般做法就是将初始化方法暴露给调用方，让调用方在初始化类库时，传入Context。


publi class App extends Application {
    /**
     * 是否是Debug环境
     */
    public static final boolean ...]]></description><category></category></item><item><title><![CDATA[平时零散琐碎总结]]></title><link>https://blog.csdn.net/JustinNick/article/details/102909417</link><guid>https://blog.csdn.net/JustinNick/article/details/102909417</guid><author>JustinNick</author><pubDate>Tue, 05 Nov 2019 09:06:59 +0800</pubDate><description><![CDATA[1.Glide.with(context).load("图片url").into(imageView)

但是大家谁知道这个里面有性能上面的坑啊？如果我们不能体系的去掌握activity，fragment，application的生命周期，而且也不了解glide源码，因而我们可能是直接在context的地方传this，或者，直接给application的context，那么此时Glide的生命周期...]]></description><category></category></item><item><title><![CDATA[应用启动速度优化]]></title><link>https://blog.csdn.net/JustinNick/article/details/102481967</link><guid>https://blog.csdn.net/JustinNick/article/details/102481967</guid><author>JustinNick</author><pubDate>Thu, 10 Oct 2019 14:43:22 +0800</pubDate><description><![CDATA[应用启动速度优化一般可以有以下几种方式：

启动页优化
	第三方库懒加载
	MultiDex优化： 介绍了两种方式，一种是直接在闪屏页开个子线程去加载dex，难维护，不推荐；一种是今日头条的方案，在单独一个进程加载dex，加载完主进程再继续。
	webview优化
	线程优化
	快速启动Activity的方式：预创建Activity，预加载数据。
1.启动页优化

 消除启动时的...]]></description><category></category></item><item><title><![CDATA[加载Bitmap相关]]></title><link>https://blog.csdn.net/JustinNick/article/details/95350640</link><guid>https://blog.csdn.net/JustinNick/article/details/95350640</guid><author>JustinNick</author><pubDate>Wed, 10 Jul 2019 16:46:38 +0800</pubDate><description><![CDATA[在实际开发中，考虑到应用是在有限的内存下工作的，理想情况是我们只需要在内存中加载一个低分辨率的照片即可。为了更便于显示，这个低分辨率的照片应该是与其对应的UI控件大小相匹配的。加载一个超过屏幕分辨率的高分辨率照片不仅没有任何显而易见的好处，还会占用宝贵的内存资源，另外在快速滑动图片时容易产生额外的效率问题。所以我们一般会通过加载经过等比例缩放的图片，从而避免超出程序的内存限制。

 B...]]></description><category></category></item><item><title><![CDATA[react-native安装与环境配置(基于AndroidStudio)]]></title><link>https://blog.csdn.net/JustinNick/article/details/93487316</link><guid>https://blog.csdn.net/JustinNick/article/details/93487316</guid><author>JustinNick</author><pubDate>Mon, 24 Jun 2019 15:18:34 +0800</pubDate><description><![CDATA[本文参考自天锁卍斩月的博客，博客地址为：https://blog.csdn.net/u013937668/article/details/78235072



一.安装java环境

先去官网下载最近java 8版本，并进行安装，注意：java 8之前的版本是不支持react native的，必须使用java 8，下载链接接：java jdk，下载完成之后进行环境变量配置，可以参考此链接进行配...]]></description><category></category></item><item><title><![CDATA[扩展点击区域的范围]]></title><link>https://blog.csdn.net/JustinNick/article/details/90232338</link><guid>https://blog.csdn.net/JustinNick/article/details/90232338</guid><author>JustinNick</author><pubDate>Wed, 15 May 2019 11:19:05 +0800</pubDate><description><![CDATA[有时按钮控件的范围太小，导致操作体验很差，需要扩大点击区域范围：


/**
 * 扩展点击区域的范围
 *
 * @param view       需要扩展的元素，此元素必需要有父级元素
 * @param expendSize 需要扩展的尺寸（以sp为单位的）
 */
public static void expendTouchArea(final View view, final int ...]]></description><category></category></item><item><title><![CDATA[EditText过滤emoji表情]]></title><link>https://blog.csdn.net/JustinNick/article/details/89211867</link><guid>https://blog.csdn.net/JustinNick/article/details/89211867</guid><author>JustinNick</author><pubDate>Thu, 11 Apr 2019 15:33:52 +0800</pubDate><description><![CDATA[最近在项目中遇到一个输入法自带emoji表情无法上传的问题，想到采用禁止输入emoji的办法（其实后台数据库添加emoji表情符是更好的做法，当然有些输入框确实不需要emoji表情），

代码实现：


public class TextChangeListener implements TextWatcher {

        private Context mContext；

     ...]]></description><category></category></item><item><title><![CDATA[Android关于调节系统字体大小引起的适配问题]]></title><link>https://blog.csdn.net/JustinNick/article/details/89022473</link><guid>https://blog.csdn.net/JustinNick/article/details/89022473</guid><author>JustinNick</author><pubDate>Thu, 04 Apr 2019 14:51:18 +0800</pubDate><description><![CDATA[有时用户在使用APP时，会调节系统的字体大小，如果我们的应用APP没有做相关处理，会造成UI界面的错乱，处理办法有两种，我们先来看下Android中有关sp的描述：


Scale-independent Pixels – This is like the dp unit, but it is also scaled by 
the user’s font size preference. It ...]]></description><category></category></item><item><title><![CDATA[Android 1.5 到 10.0 新特性]]></title><link>https://blog.csdn.net/JustinNick/article/details/88549491</link><guid>https://blog.csdn.net/JustinNick/article/details/88549491</guid><author>JustinNick</author><pubDate>Thu, 14 Mar 2019 11:29:59 +0800</pubDate><description><![CDATA[Android 1.5（Cupcake纸杯蛋糕）：


	智能虚拟键盘；使用widgets实现桌面个性化；在线文件夹(Live Folder)快速浏览在线数据；视频录制和分享；图片上传；
	
	
	更快的标准兼容浏览器；Voice search 语音搜索；立体声蓝牙和免提电话
	
Android 1.6（Donut甜甜圈）：


	完全重新设计的Android Market，可以显示更多的屏幕截...]]></description><category></category></item><item><title><![CDATA[防止按钮重复点击]]></title><link>https://blog.csdn.net/JustinNick/article/details/87774416</link><guid>https://blog.csdn.net/JustinNick/article/details/87774416</guid><author>JustinNick</author><pubDate>Wed, 20 Feb 2019 09:28:43 +0800</pubDate><description><![CDATA[App中，有很大一部分场景是点击按钮，向服务端提交数据，由于网络请求需要时间，用户很可能会多次点击，造成数据重复提交，造成各种莫名其妙的问题。因此，防止按钮多次点击，是Android开发中一个很重要的技术手段。

下面介绍两种解决方式：

 1.每个按钮点击事件中，记录点击时间，判断是否超过点击时间间隔


private long mLastClickTime = 0;
public ...]]></description><category></category></item><item><title><![CDATA[全局监测网络变化并提示]]></title><link>https://blog.csdn.net/JustinNick/article/details/85780684</link><guid>https://blog.csdn.net/JustinNick/article/details/85780684</guid><author>JustinNick</author><pubDate>Fri, 04 Jan 2019 15:58:23 +0800</pubDate><description><![CDATA[APP开发中，网络已成为一款应用的必须的，有时需求需要随时监测网络变化，实现起来其实很简单：

1.创建广播接受者


public class NetWorkChangeReceiver extends BroadcastReceiver {

    public NetWorkChangeReceiver() {
        super();
    }

    @Override
 ...]]></description><category></category></item><item><title><![CDATA[WebView中Http和Https加载问题]]></title><link>https://blog.csdn.net/JustinNick/article/details/85157456</link><guid>https://blog.csdn.net/JustinNick/article/details/85157456</guid><author>JustinNick</author><pubDate>Fri, 21 Dec 2018 10:06:00 +0800</pubDate><description><![CDATA[比如https页面加载http图片或者http页面加载https图片时图片显示不出来，原因是因为在Android 5.0开始WebView默认不允许加载http与https混合页面，

解决办法：


//https与http混合资源处理
if (Build.VERSION.SDK_INT &amp;gt;= Build.VERSION_CODES.LOLLIPOP) {
    webSettings....]]></description><category></category></item><item><title><![CDATA[Android图片选择与上传(ImagePicker)]]></title><link>https://blog.csdn.net/JustinNick/article/details/84540583</link><guid>https://blog.csdn.net/JustinNick/article/details/84540583</guid><author>JustinNick</author><pubDate>Mon, 26 Nov 2018 14:28:48 +0800</pubDate><description><![CDATA[1.用法

使用前，对于Android Studio的用户，可以选择添加:


compile 'com.lzy.widget:imagepicker:0.6.1'  //指定版本

2.具体使用

  1.首先你需要继承 com.lzy.imagepicker.loader.ImageLoader 这个接口,实现其中的方法,比如以下代码是使用Glide第三方加载库实现的


public cla...]]></description><category></category></item><item><title><![CDATA[webView中点击图片能够加载]]></title><link>https://blog.csdn.net/JustinNick/article/details/83145439</link><guid>https://blog.csdn.net/JustinNick/article/details/83145439</guid><author>JustinNick</author><pubDate>Thu, 18 Oct 2018 13:53:59 +0800</pubDate><description><![CDATA[在一次开发中，产品突然说了一句能不能实现点击咋们的网页中的图片，能够单独显示，当时也是一脸懵逼，之后想了想，其实也就是响应webview中的图片事件而已，实现起来也不是很难。

实现思路：


	使用WebView的js注入，为HTML加入js函数监听
	
	
	在Android中添加当触发HTMl中js方法的接口
	
 具体步骤如下：

1.    mWebView = (WebView) fi...]]></description><category></category></item><item><title><![CDATA[Android打release包时按Home键，再按桌面icon时出现app重新启动的问题]]></title><link>https://blog.csdn.net/JustinNick/article/details/82885766</link><guid>https://blog.csdn.net/JustinNick/article/details/82885766</guid><author>JustinNick</author><pubDate>Fri, 28 Sep 2018 16:19:53 +0800</pubDate><description><![CDATA[在项目开发中遇到了按Home键，再按桌面icon时出现app重新启动的问题，这个时候我们将启动的那个activity(一般为广告页面GuideActivity)的启动模式android:launchMode=&quot;singleTask&quot;去掉即可，但是有些APP很奇怪，debug版本没问题，但是当我们打release包时就出现上述问题啦，开始发现这个问题，我以为是app被系统kill了，但是经过我多次调...]]></description><category></category></item><item><title><![CDATA[Android 界面过度绘制优化]]></title><link>https://blog.csdn.net/JustinNick/article/details/82492659</link><guid>https://blog.csdn.net/JustinNick/article/details/82492659</guid><author>JustinNick</author><pubDate>Fri, 07 Sep 2018 10:34:33 +0800</pubDate><description><![CDATA[过度绘制（Overdraw）的概念

过度绘制（Overdraw）描述的是屏幕上的某个像素在同一帧的时间内被绘制了多次。在多层次重叠的 UI 结构里面，如果不可见的 UI 也在做绘制的操作，会导致某些像素区域被绘制了多次，同时也会浪费大量的 CPU 以及 GPU 资源。

     在 Android 手机的开发者选项中，有一个『调试 GPU 过度绘制』的选项，该选项开启之后，手机显示如下，显示出...]]></description><category></category></item><item><title><![CDATA[adb无线连接(无需root，借助USB线)]]></title><link>https://blog.csdn.net/JustinNick/article/details/82142575</link><guid>https://blog.csdn.net/JustinNick/article/details/82142575</guid><author>JustinNick</author><pubDate>Tue, 28 Aug 2018 09:42:38 +0800</pubDate><description><![CDATA[详细adb命令可参考：https://github.com/mzlogin/awesome-adb

无线连接（需要借助 USB 线）

除了可以通过 USB 连接设备与电脑来使用 adb，也可以通过无线连接——虽然连接过程中也有需要使用 USB 的步骤，但是连接成功之后你的设备就可以在一定范围内摆脱 USB 连接线的限制啦！

操作步骤：


	将 Android 设备与要运行 adb 的电脑连...]]></description><category></category></item><item><title><![CDATA[ShareSDK各社交平台申请APPkey 的网址及申请流程汇总]]></title><link>https://blog.csdn.net/JustinNick/article/details/81661149</link><guid>https://blog.csdn.net/JustinNick/article/details/81661149</guid><author>JustinNick</author><pubDate>Tue, 14 Aug 2018 09:41:25 +0800</pubDate><description><![CDATA[ShareSDK各社交平台申请APPkey 的网址及申请流程汇总

友盟SDK下载地址：https://developer.umeng.com/sdk
下图列表出自：http://bbs.mob.com/thread-275-1-1.html

平台
			开放平台地址
			APPkey 申请流程
		新浪微博
			http://open.weibo.com
			
			http://bbs...]]></description><category></category></item><item><title><![CDATA[使用SharedPreference存储对象集合]]></title><link>https://blog.csdn.net/JustinNick/article/details/81542614</link><guid>https://blog.csdn.net/JustinNick/article/details/81542614</guid><author>JustinNick</author><pubDate>Thu, 09 Aug 2018 19:24:49 +0800</pubDate><description><![CDATA[开发中有时需要存储对象集合，使用数据库又大材小用啦，所以这个时候可以使用SharedPreference，下面就是为了以后使用方便封装的工具类：


public class ListDataSaveUtil {

    private static final String DEFAULT_SP_NAME = &quot;default_sp&quot;;
    private static final Str...]]></description><category></category></item><item><title><![CDATA[手机短信验证码---倒计时]]></title><link>https://blog.csdn.net/JustinNick/article/details/80969283</link><guid>https://blog.csdn.net/JustinNick/article/details/80969283</guid><author>JustinNick</author><pubDate>Mon, 09 Jul 2018 14:18:25 +0800</pubDate><description><![CDATA[一款APP在注册和忘记密码界面都有手机号发送验证码验证功能，下面封装一个工具类可直接使用：public class SmsHelp {

    public SmsHelp(Context context, Button button) {
        this.mContext = context;
        this.mButton = button;
    }

    pri...]]></description><category></category></item></channel></rss>