<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[mintent的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/mintent</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; mintent]]></copyright><item><title><![CDATA[anr中trace文件的导出。]]></title><link>https://blog.youkuaiyun.com/mintent/article/details/105823274</link><guid>https://blog.youkuaiyun.com/mintent/article/details/105823274</guid><author>mintent</author><pubDate>Tue, 28 Apr 2020 21:21:36 +0800</pubDate><description><![CDATA[项目中经常会出现anr，排查的方法相信大家都知道，那就是通过trace文件进行问题的定位。有的同学可能并不知道trace文件怎么导出。很简单，通过adb命令查看本地是否存在trace文件。通过adb shell 进入adb命令中，然后通过 ls - al 查看adb下的所有文件，然后进入cd进入data/anr/然后查看是否有trace文件，如果存在的话，重新打开一个cmd文件，然后通过adb p...]]></description><category></category></item><item><title><![CDATA[java类的执行先后]]></title><link>https://blog.youkuaiyun.com/mintent/article/details/105644811</link><guid>https://blog.youkuaiyun.com/mintent/article/details/105644811</guid><author>mintent</author><pubDate>Mon, 20 Apr 2020 21:15:59 +0800</pubDate><description><![CDATA[静态代码块---main方法---构造代码块---构造方法---new 对象 --- 普通方法。
]]></description><category></category></item><item><title><![CDATA[查看adb调试端口号是否被占用，导致adb调试不显示机型]]></title><link>https://blog.youkuaiyun.com/mintent/article/details/102370544</link><guid>https://blog.youkuaiyun.com/mintent/article/details/102370544</guid><author>mintent</author><pubDate>Tue, 08 Oct 2019 10:59:47 +0800</pubDate><description><![CDATA[首先进入cmd 输入adb devices 是否安装了adb，是否配置了adb 环境。

如果已经安装了，那可以通过输入netstat -aon|findstr "5037" 然后查看是否有进程占用了， 然后将占用的进程杀掉，就可以了。

这个只是简便的方式，但是为了避免5037总被占用，我们可以自己自定义adb端口。
...]]></description><category></category></item><item><title><![CDATA[butterknife的使用，以及点击右键没有提示。]]></title><link>https://blog.youkuaiyun.com/mintent/article/details/100702247</link><guid>https://blog.youkuaiyun.com/mintent/article/details/100702247</guid><author>mintent</author><pubDate>Tue, 10 Sep 2019 16:16:51 +0800</pubDate><description><![CDATA[首先我们在setting中的plugins里面搜索butterknife插件，然后进行下载，下载完成之后，我们的idea工具中就有了这个插件了，然后就是我们进行构建以及app的gradle以及project中的gradle进行配置，主要介绍gradle中的配置。



下载完插件之后显示的是上面的图片示意。

然后就是我们的配置，首先在我们的app中的gradle中：

在我们的app.gradl...]]></description><category></category></item><item><title><![CDATA[极简易懂得mvp架构模式。]]></title><link>https://blog.youkuaiyun.com/mintent/article/details/100656327</link><guid>https://blog.youkuaiyun.com/mintent/article/details/100656327</guid><author>mintent</author><pubDate>Mon, 09 Sep 2019 11:39:23 +0800</pubDate><description><![CDATA[刚开始对mvp的架构模式很模糊，而且也有很多文章对mvp模式的介绍，说实话，看了那么多知道的都是一些文字上的东西。真的需要手动实际去操作，才能真正领悟mvp的极度舒适的感觉。

话不多说，首先我们做一个登录的简单例子。

首先是布局：



布局文件：


&lt;?xml version="1.0" encoding="utf-8"?&gt;
&lt;LinearLayout xmlns:and...]]></description><category></category></item><item><title><![CDATA[处理Edittext限制字数提示，以及回车换行功能。]]></title><link>https://blog.youkuaiyun.com/mintent/article/details/100576507</link><guid>https://blog.youkuaiyun.com/mintent/article/details/100576507</guid><author>mintent</author><pubDate>Fri, 06 Sep 2019 13:23:35 +0800</pubDate><description><![CDATA[首先是edittext布局文件


    &lt;EditText
        android:inputType="text"
        android:imeOptions="actionDone"
        android:id="@+id/ets"
        android:layout_width="match_parent"
        android:la...]]></description><category></category></item><item><title><![CDATA[简单的substring用法。]]></title><link>https://blog.youkuaiyun.com/mintent/article/details/100556503</link><guid>https://blog.youkuaiyun.com/mintent/article/details/100556503</guid><author>mintent</author><pubDate>Thu, 05 Sep 2019 13:52:09 +0800</pubDate><description><![CDATA[非常简单，其实秉承着一句话，顾头不顾尾就ok了。

所以如果我们想得到最后一个字符可以这样做。


String urls = "http://120.20.3:8080/one/a/ht/v1/1/0";
String substring = urls.substring(urls.lastIndexOf("/")+1, urls.length());

然后得到的substring为“0”；
...]]></description><category></category></item><item><title><![CDATA[android.view.WindowManager$BadTokenException: Unable to add window]]></title><link>https://blog.youkuaiyun.com/mintent/article/details/100542249</link><guid>https://blog.youkuaiyun.com/mintent/article/details/100542249</guid><author>mintent</author><pubDate>Wed, 04 Sep 2019 16:46:23 +0800</pubDate><description><![CDATA[遇到这种问题不用慌张，直接排查看是否是dialog或者popwindow中使用的上下文是 application么？如果是的话，那恭喜你中奖了，需要你使用宿主的activity的上下文才ok。
...]]></description><category></category></item><item><title><![CDATA[学习git和下载git得网址。]]></title><link>https://blog.youkuaiyun.com/mintent/article/details/100161920</link><guid>https://blog.youkuaiyun.com/mintent/article/details/100161920</guid><author>mintent</author><pubDate>Fri, 30 Aug 2019 16:44:42 +0800</pubDate><description><![CDATA[https://www.liaoxuefeng.com/wiki/896043488029600/896827951938304
]]></description><category></category></item><item><title><![CDATA[java生成随机数]]></title><link>https://blog.youkuaiyun.com/mintent/article/details/100135937</link><guid>https://blog.youkuaiyun.com/mintent/article/details/100135937</guid><author>mintent</author><pubDate>Thu, 29 Aug 2019 13:31:58 +0800</pubDate><description><![CDATA[随机数，在我们实际开发中非常可见，用法也非常简单。

例如：

取从a到b的随机数就是（int）（（b-a)*Math.random()＋a）；
]]></description><category></category></item><item><title><![CDATA[java处理html特殊字符转义，以及去掉空格，下划线，换行等操作。]]></title><link>https://blog.youkuaiyun.com/mintent/article/details/100112429</link><guid>https://blog.youkuaiyun.com/mintent/article/details/100112429</guid><author>mintent</author><pubDate>Wed, 28 Aug 2019 09:12:18 +0800</pubDate><description><![CDATA[直接上代码：


    /**
     * 处理特殊字符串
     *
     * @param s
     * @return
     */
    public String string2Json(String s) {
        StringBuffer sb = new StringBuffer();
        for (int i = 0; i &lt; s.l...]]></description><category></category></item><item><title><![CDATA[防止字符串传递过程中串码以及特殊字符转义。。。]]></title><link>https://blog.youkuaiyun.com/mintent/article/details/100112391</link><guid>https://blog.youkuaiyun.com/mintent/article/details/100112391</guid><author>mintent</author><pubDate>Wed, 28 Aug 2019 09:08:31 +0800</pubDate><description><![CDATA[推荐一个特别好用的方法，非常简单就是我们需要对传递的string对象进行encoder操作，然后后台或者h5拿到encode之后进行decode操作，得到未被转义的string了。

传递方：


String encode = URLEncoder.encode(url, "UTF-8");

接收方：


String decode = URLDecoder.decode(encode, "U...]]></description><category></category></item><item><title><![CDATA[RSA前后台公钥私钥加密解密以及公钥私钥存储]]></title><link>https://blog.youkuaiyun.com/mintent/article/details/99569521</link><guid>https://blog.youkuaiyun.com/mintent/article/details/99569521</guid><author>mintent</author><pubDate>Wed, 14 Aug 2019 14:56:01 +0800</pubDate><description><![CDATA[不多说了，直接看代码吧

首先需要俩个工具类


package com.example.aasd;
import java.io.ByteArrayOutputStream;
import java.io.IOException;
import java.io.OutputStream;

/**
 * Created by pw on 2019/8/14 11:04
 * E-Mail Add...]]></description><category></category></item><item><title><![CDATA[自定义的广播接收者，用来处理不同界面中的数据的交互。]]></title><link>https://blog.youkuaiyun.com/mintent/article/details/97764774</link><guid>https://blog.youkuaiyun.com/mintent/article/details/97764774</guid><author>mintent</author><pubDate>Tue, 30 Jul 2019 11:37:44 +0800</pubDate><description><![CDATA[Aactivity想要得到Bactivity回调中的数据。

Aactivity：

首先在onCreate中进行动态注册。


        recevier = new Myreceiver();
        intentFilter = new IntentFilter();
        intentFilter.addAction("pw.163.com");
        r...]]></description><category></category></item><item><title><![CDATA[自定义view实现手动签名]]></title><link>https://blog.youkuaiyun.com/mintent/article/details/97277528</link><guid>https://blog.youkuaiyun.com/mintent/article/details/97277528</guid><author>mintent</author><pubDate>Thu, 25 Jul 2019 17:39:31 +0800</pubDate><description><![CDATA[直接看代码就行了。

自定义得view


public class CustomView extends View {
    private Path path = new Path();
    private float prex;
    private float prey;

    public CustomView(Context context) {
        super...]]></description><category></category></item><item><title><![CDATA[butterknife最新版本地址]]></title><link>https://blog.youkuaiyun.com/mintent/article/details/97272423</link><guid>https://blog.youkuaiyun.com/mintent/article/details/97272423</guid><author>mintent</author><pubDate>Thu, 25 Jul 2019 16:35:00 +0800</pubDate><description><![CDATA[https://github.com/JakeWharton/butterknife
]]></description><category></category></item><item><title><![CDATA[简单的自定义view]]></title><link>https://blog.youkuaiyun.com/mintent/article/details/97246953</link><guid>https://blog.youkuaiyun.com/mintent/article/details/97246953</guid><author>mintent</author><pubDate>Thu, 25 Jul 2019 13:11:38 +0800</pubDate><description><![CDATA[最近看到一个关于自定义view方面的介绍，觉得非常清楚明了，对最基本的理解是很easy的。



然后获取view自身的宽高，根据图片得知

width = getRight() - getLeft();

height = getBottom() - getTop();

View的源码当中提供了getWidth()和getHeight()方法用来获取View的宽度和高度，其内部方法和上文所示...]]></description><category></category></item><item><title><![CDATA[堆、栈、方法区。。。]]></title><link>https://blog.youkuaiyun.com/mintent/article/details/97127322</link><guid>https://blog.youkuaiyun.com/mintent/article/details/97127322</guid><author>mintent</author><pubDate>Wed, 24 Jul 2019 13:55:00 +0800</pubDate><description><![CDATA[JAVA的JVM的内存可分为3个区：堆(heap)、堆栈(stack)和方法区(method)

堆区:（只存放类对象，线程共享）

提供所有类实例和数组对象存储区域

jvm只有一个堆区(heap)被所有线程共享，堆中不存放基本类型和对象引用，只存放对象本身

栈区:（存放方法局部变量，基本类型变量，执行环境上下文，操作指令，线程不共享）

每个线程包含一个栈区，栈中只保存基础数据类型的对象和自...]]></description><category></category></item><item><title><![CDATA[华为，小米，oppo，vivo，魅族，信鸽推送封装整合。]]></title><link>https://blog.youkuaiyun.com/mintent/article/details/97105332</link><guid>https://blog.youkuaiyun.com/mintent/article/details/97105332</guid><author>mintent</author><pubDate>Wed, 24 Jul 2019 10:10:39 +0800</pubDate><description><![CDATA[推送集成方案
1.介绍：
首先我们得aar包分为debug包，以及release包，其中release包做了混淆，开发者使用时候需要去混淆配置文件进行单独类配置，以防无法访问相应得类名。我们得aar包支持的推送分为（小米推送，华为推送，魅族推送，vivo推送，oppo推送，以及三方信鸽推送）。
2.使用：
1）将aar包拷贝到我们的项目的lib文件中，然后在我们的app build.gradle文...]]></description><category></category></item><item><title><![CDATA[依赖aar包出现问题，提示Manifest merger failed with multiple errors。]]></title><link>https://blog.youkuaiyun.com/mintent/article/details/97018331</link><guid>https://blog.youkuaiyun.com/mintent/article/details/97018331</guid><author>mintent</author><pubDate>Tue, 23 Jul 2019 18:30:42 +0800</pubDate><description><![CDATA[首先，报错没有给相应的提示信息，所以我们需要得到报错的提示信息，这里需要自己在命令行获取日志信息。

进入命令行，然后输入

gradlew processDebugManifest --stacktrace

然后我们等待日志出现，然后查看日志信息，很明显，我得日志信息显示

minSdkVerson 14 can not be smaller sdk15 than the moudlelibr...]]></description><category></category></item></channel></rss>