<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[Cheng]]></title><description><![CDATA[每天保持进步]]></description><link>https://blog.csdn.net/qq_42403295</link><language>zh-cn</language><generator>https://blog.csdn.net/</generator><copyright><![CDATA[Copyright &copy; qq_42403295]]></copyright><item><title><![CDATA[Android 可折叠自定义ExpandTextView]]></title><link>https://blog.csdn.net/qq_42403295/article/details/121717049</link><guid>https://blog.csdn.net/qq_42403295/article/details/121717049</guid><author>qq_42403295</author><pubDate>Sat, 04 Dec 2021 16:05:14 +0800</pubDate><description><![CDATA[参考自他人https://blog.csdn.net/Luckly452468460/article/details/103613471
通过自己实现CreateAppenderListener，可以自己定义 尾部追加的文字或者图片，或者文字加图片。
有注释，就不解释细节了。
使用：
折叠状态：

展开状态：

&lt;!--这里的宽度不能设置wrap_content,可以具体值或者match_parent--&gt;
&lt;com.example.myapplication.ExpandTextView]]></description><category></category></item><item><title><![CDATA[IPC进程间通信]]></title><link>https://blog.csdn.net/qq_42403295/article/details/118725341</link><guid>https://blog.csdn.net/qq_42403295/article/details/118725341</guid><author>qq_42403295</author><pubDate>Wed, 14 Jul 2021 15:44:05 +0800</pubDate><description><![CDATA[参考自：添加链接描述
binder驱动
aidl 安卓接口定义语言
1.创建aidl文件：


2编译项目：
创建完aidl文件后重编译，会生成对应java文件
UserAidl.java文件：
抽象类Stub： 继承自Binder，实现了UserAidl接口
Stub.Proxy代理类： 实现了UserAidl接口
asInterface静态方法（Stub类的方法）：
当前应用的，直接返回Stub。
远程的，返回Stub.Proxy代理类。

3.创建服务类；
service类：


客户端bindSer]]></description><category></category></item><item><title><![CDATA[Leetcode134]]></title><link>https://blog.csdn.net/qq_42403295/article/details/118489366</link><guid>https://blog.csdn.net/qq_42403295/article/details/118489366</guid><author>qq_42403295</author><pubDate>Mon, 05 Jul 2021 14:32:17 +0800</pubDate><description><![CDATA[思路：
遍历数组，遇到gas[i] &gt;= cost[i] 时，尝试以i节点作为起始点，sumGas记录总油量，到达一个站点，加上gas[i]油量，并减去将要耗费的油量cost[i], 如果sumGas小于0，说明到达不了下一站。
public static int canCompleteCircuit(int[] gas, int[] cost) {
        // 记录遍历的节点个数
        int count = 0;
        int len = gas.length;
  ]]></description><category></category></item><item><title><![CDATA[Leetcode55]]></title><link>https://blog.csdn.net/qq_42403295/article/details/118469124</link><guid>https://blog.csdn.net/qq_42403295/article/details/118469124</guid><author>qq_42403295</author><pubDate>Sun, 04 Jul 2021 22:55:45 +0800</pubDate><description><![CDATA[思路：
遍历数组，用一个变量maxArrive记录遍历到当前元素时，可以跳到最远的距离，遍历过程中，如果有maxArrive大于nums.length -1，则说明可以跳到最后一个下标。遍历到一个新标点后，更新maxArrive，如果发现maxArrive &lt;= i则说明最远只能到i下标，返回false；
public boolean canJump(int[] nums) {
        if (nums == null || nums.length &lt;= 1) {
          .]]></description><category></category></item><item><title><![CDATA[浏览器 代理服务器无法响应]]></title><link>https://blog.csdn.net/qq_42403295/article/details/109090061</link><guid>https://blog.csdn.net/qq_42403295/article/details/109090061</guid><author>qq_42403295</author><pubDate>Fri, 09 Apr 2021 17:05:28 +0800</pubDate><description><![CDATA[]]></description><category></category></item><item><title><![CDATA[google tablayout设置字体大小]]></title><link>https://blog.csdn.net/qq_42403295/article/details/109740125</link><guid>https://blog.csdn.net/qq_42403295/article/details/109740125</guid><author>qq_42403295</author><pubDate>Tue, 17 Nov 2020 12:25:08 +0800</pubDate><description><![CDATA[&lt;style name="MyCustomTabText" parent="TextAppearance.AppCompat.Button"&gt;
    &lt;item name="android:textSize"&gt;15dp&lt;/item&gt;
    &lt;item name="android:textColor"&gt;@color/c_9796A9&lt;/item&gt;
&lt;/style&gt;

&lt;com.google.android.material.t.]]></description><category></category></item><item><title><![CDATA[整数拆分]]></title><link>https://blog.csdn.net/qq_42403295/article/details/109039105</link><guid>https://blog.csdn.net/qq_42403295/article/details/109039105</guid><author>qq_42403295</author><pubDate>Mon, 12 Oct 2020 23:13:50 +0800</pubDate><description><![CDATA[给定一个正整数 n，将其拆分为至少两个正整数的和，并使这些整数的乘积最大化。 返回你可以获得的最大乘积。(假设 n 不小于 2 且不大于 58。)
解：尽量把数拆成3，拆解到只剩2或3或4，则不用再拆解了。
比如7=3+4；10=3+3+4
class Solution {
    public int integerBreak(int n) {
        if(n==2) {
            return 1;
        }
         if(n==3) {
          ]]></description><category></category></item><item><title><![CDATA[React Native无法获取gradle资源]]></title><link>https://blog.csdn.net/qq_42403295/article/details/106517040</link><guid>https://blog.csdn.net/qq_42403295/article/details/106517040</guid><author>qq_42403295</author><pubDate>Wed, 03 Jun 2020 09:20:27 +0800</pubDate><description><![CDATA[解决方法https://www.cnblogs.com/lonenysky/p/11531997.html

]]></description><category></category></item><item><title><![CDATA[反转链表]]></title><link>https://blog.csdn.net/qq_42403295/article/details/103215695</link><guid>https://blog.csdn.net/qq_42403295/article/details/103215695</guid><author>qq_42403295</author><pubDate>Sat, 23 Nov 2019 16:52:12 +0800</pubDate><description><![CDATA[/**
 * Definition for singly-linked list.
 * public class ListNode {
 *     int val;
 *     ListNode next;
 *     ListNode(int x) { val = x; }
 * }
 */
class Solution {
    public ListNode reverseList...]]></description><category></category></item><item><title><![CDATA[屏幕适配（慕课笔记）]]></title><link>https://blog.csdn.net/qq_42403295/article/details/102554165</link><guid>https://blog.csdn.net/qq_42403295/article/details/102554165</guid><author>qq_42403295</author><pubDate>Tue, 15 Oct 2019 13:53:31 +0800</pubDate><description><![CDATA[1英寸=2.54cm
应对主流屏幕分辨率适配：

1.dp==dip，以160dpi为基准，1px=1dp
2.关于sp，推荐使用12sp以上的大小，不推荐使用奇数，因为有可能导致精度丢失
3.value文件夹的不同命名方法（限定修饰符）也是为了在不同屏幕分辨率下提供不同的值

解决方案：

layout_weight的使用
使用相对布局
large
使用限定符：
android3.2之前的使用方...]]></description><category></category></item><item><title><![CDATA[圆形]]></title><link>https://blog.csdn.net/qq_42403295/article/details/102563855</link><guid>https://blog.csdn.net/qq_42403295/article/details/102563855</guid><author>qq_42403295</author><pubDate>Tue, 15 Oct 2019 11:28:55 +0800</pubDate><description><![CDATA[&lt;shape xmlns:android="http://schemas.android.com/apk/res/android"
    android:shape="oval"&gt;
    &lt;solid android:color="#FFF4333C" /&gt;
    &lt;size android:width="@dimen/dp_6"
        android...]]></description><category></category></item><item><title><![CDATA[java多态]]></title><link>https://blog.csdn.net/qq_42403295/article/details/102484890</link><guid>https://blog.csdn.net/qq_42403295/article/details/102484890</guid><author>qq_42403295</author><pubDate>Thu, 10 Oct 2019 16:22:34 +0800</pubDate><description><![CDATA[多态，同一个方法，因不同对象的调用，有不同的形态表现。
子类对象赋值给父类（或者接口）：Parent p=new Child();//向上转型
p可以调用Child类里重写了Parent的方法，而Child自己的方法则不行。
通过if(p isinstanceof Child){
Child c=(Child)p;  //向下转型
}
之后就可以调用Child自己定义的方法了。

...]]></description><category></category></item><item><title><![CDATA[fragment懒加载（笔记）]]></title><link>https://blog.csdn.net/qq_42403295/article/details/102484003</link><guid>https://blog.csdn.net/qq_42403295/article/details/102484003</guid><author>qq_42403295</author><pubDate>Thu, 10 Oct 2019 15:49:19 +0800</pubDate><description><![CDATA[public abstract class  BaseFragment extends Fragment{
	//Fragment的View加载完毕的标记
    private boolean isViewCreated;

    //Fragment对用户可见的标记
    private boolean isUIVisible;

    private boolean isLazyLoa...]]></description><category></category></item><item><title><![CDATA[Switch]]></title><link>https://blog.csdn.net/qq_42403295/article/details/102477679</link><guid>https://blog.csdn.net/qq_42403295/article/details/102477679</guid><author>qq_42403295</author><pubDate>Thu, 10 Oct 2019 11:22:39 +0800</pubDate><description><![CDATA[效果:

&lt;Switch
            android:id="@+id/sw_tip"
            android:layout_width="wrap_content"
            android:layout_height="20dp"
            android:layout_centerVertical="true"
         ...]]></description><category></category></item><item><title><![CDATA[EditView-设置监听]]></title><link>https://blog.csdn.net/qq_42403295/article/details/102477148</link><guid>https://blog.csdn.net/qq_42403295/article/details/102477148</guid><author>qq_42403295</author><pubDate>Thu, 10 Oct 2019 11:03:11 +0800</pubDate><description><![CDATA[private void setTextViewWatcher(){
        tv.addTextChangedListener(new TextWatcher() {
            @Override
            public void beforeTextChanged(CharSequence charSequence, int i, int i1, int i...]]></description><category></category></item><item><title><![CDATA[time-倒计时函数]]></title><link>https://blog.csdn.net/qq_42403295/article/details/102476814</link><guid>https://blog.csdn.net/qq_42403295/article/details/102476814</guid><author>qq_42403295</author><pubDate>Thu, 10 Oct 2019 10:52:32 +0800</pubDate><description><![CDATA[private class MyCountDownTimer extends CountDownTimer{

        //millisInFuture毫秒结束，间隔countDownInterval(比如60秒，每次间隔1秒)
        public MyCountDownTimer(long millisInFuture, long countDownInterval) {
  ...]]></description><category></category></item><item><title><![CDATA[retrofit的使用（笔记）]]></title><link>https://blog.csdn.net/qq_42403295/article/details/100906395</link><guid>https://blog.csdn.net/qq_42403295/article/details/100906395</guid><author>qq_42403295</author><pubDate>Mon, 16 Sep 2019 23:50:26 +0800</pubDate><description><![CDATA[案例一：


retrofit的使用步骤：

添加依赖和网络访问权限
添加服务器返回的数据类型

创建网络请求的接口


4. 创建retrofit实例
实际的访问ip为baseUrl+上图注解中的参数



创建网络请求接口的实例



调用网络请求的异步方法或者同步方法,并处理返回的数据



代理
1.动态代理
2.静态代理



...]]></description><category></category></item><item><title><![CDATA[linux系统管理笔记（2）]]></title><link>https://blog.csdn.net/qq_42403295/article/details/100813657</link><guid>https://blog.csdn.net/qq_42403295/article/details/100813657</guid><author>qq_42403295</author><pubDate>Sat, 14 Sep 2019 12:56:55 +0800</pubDate><description><![CDATA[查看后台运行的程序（windows后台运行其实就是最小化）：jobs



要放入后台的命令不能与前台有交互，否则该命令放入 后台后是处于暂停的，比如vi abc &amp;


后台命令脱离终端：




...]]></description><category></category></item><item><title><![CDATA[linux系统管理笔记（1）]]></title><link>https://blog.csdn.net/qq_42403295/article/details/100804954</link><guid>https://blog.csdn.net/qq_42403295/article/details/100804954</guid><author>qq_42403295</author><pubDate>Fri, 13 Sep 2019 17:30:33 +0800</pubDate><description><![CDATA[进程：正在运行的程序
常驻进程，例如apach服务
僵尸进程：依赖进程被杀死，导致当前进程卡住
缓冲：用来加速写入
缓存：用来加速读取
查看进程
ps aux
ps -le



pstree(进程树)

查看top命令（查看系统健康状态）

杀死进程（windows任务管理器，linux：kill（杀死单个进程），killall（杀死一组进程，有些服务是启动多个进程），pkill（按终端号来杀死...]]></description><category></category></item><item><title><![CDATA[Spinner的使用]]></title><link>https://blog.csdn.net/qq_42403295/article/details/100777112</link><guid>https://blog.csdn.net/qq_42403295/article/details/100777112</guid><author>qq_42403295</author><pubDate>Thu, 12 Sep 2019 16:55:03 +0800</pubDate><description><![CDATA[效果图

activity_main.xml
&lt;?xml version="1.0" encoding="utf-8"?&gt;
&lt;androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http...]]></description><category></category></item></channel></rss>