<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[system_err的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/system_err</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; system_err]]></copyright><item><title><![CDATA[针对TextView更换字体颜色同时设置不同的点击事件的设计方案]]></title><link>https://blog.youkuaiyun.com/system_err/article/details/108757055</link><guid>https://blog.youkuaiyun.com/system_err/article/details/108757055</guid><author>system_err</author><pubDate>Wed, 23 Sep 2020 17:10:27 +0800</pubDate><description><![CDATA[在需求中我们需要将下面的文字放到一起，并更改不同的颜色进行区分，还需要将用《用户协议》和《隐私政策》添加不同的点击事情，去跳转进行展示不同的说明

首先这是一个弹框，我们需要先去定义它的布局文件





&lt;?xml version="1.0" encoding="utf-8"?&gt;
&lt;LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_w...]]></description><category></category></item><item><title><![CDATA[android打包签名介绍]]></title><link>https://blog.youkuaiyun.com/system_err/article/details/108593959</link><guid>https://blog.youkuaiyun.com/system_err/article/details/108593959</guid><author>system_err</author><pubDate>Tue, 15 Sep 2020 10:00:52 +0800</pubDate><description><![CDATA[Keytool 是一个有效的安全钥匙和证书的管理工具.Java中的 keytool.exe （位于 JDK\Bin 目录下）可以用来创建数字证书，所有的数字证书是以一条一条(采用别名区别)的形式存入证书库的中，证书库中的一条证书包含该条证书的私钥，公钥和对应的数字证书的信息。证书库中的一条证书可以导出数字证书文件，数字证书文件只包括主体信息和对应的公钥。
Keytool 把钥匙和证书储存到一个keystore.默任的实现keystore的是一个文件.它用一个密码保护钥匙.
(2)
关于证书的几个概...]]></description><category></category></item><item><title><![CDATA[Android 8.0 app 内自动更新安装失败问题]]></title><link>https://blog.youkuaiyun.com/system_err/article/details/108593586</link><guid>https://blog.youkuaiyun.com/system_err/article/details/108593586</guid><author>system_err</author><pubDate>Tue, 15 Sep 2020 09:47:20 +0800</pubDate><description><![CDATA[最近发现在Android 8.0的设备上，以前正常的app内自动更新都出现了更新闪退的问题，debug一下发现是权限问题，


在manifest添加这个权限即可


&lt;uses-permission android:name="android.permission.REQUEST_INSTALL_PACKAGES"/&gt;
...]]></description><category></category></item><item><title><![CDATA[android签名打包v1和v2的区别]]></title><link>https://blog.youkuaiyun.com/system_err/article/details/108593466</link><guid>https://blog.youkuaiyun.com/system_err/article/details/108593466</guid><author>system_err</author><pubDate>Tue, 15 Sep 2020 09:44:34 +0800</pubDate><description><![CDATA[故事发生的原因：我这边做了正式的签名后（v1和v2同时勾选，产生正式的apk），拿给后台，后台再对我的apk签名再进行处理（截取部分签名后，然后重新签名，打入渠道号）！最后神奇的现象发生了，经过后台处理后的apk在7.0以下的手机是可以安装的，7.0及以上的手机是不能安装！

这里就不能不重点介绍以下v1和V2签名了：

这里可以看到：v1签名是对jar进行签名，V2签名是对整个apk签名：官方介绍就是：v2签名是在整个APK文件的二进制内容上计算和验证的，v1是在归档文件中解压缩文件内容。

二者签名所产]]></description><category></category></item><item><title><![CDATA[Android studio 如何生成签名文件]]></title><link>https://blog.youkuaiyun.com/system_err/article/details/108213581</link><guid>https://blog.youkuaiyun.com/system_err/article/details/108213581</guid><author>system_err</author><pubDate>Tue, 25 Aug 2020 09:22:27 +0800</pubDate><description><![CDATA[1.通过Android studio----Build----Generate Signed APK



2.如果还没有生成过签名文件，那么就点击create new 进行创建

.



3.编辑信息





4.列子





5.点击ok后，上一个页面就自动填写好了 ，就如图所示，然后现在D:\下载\helloword.jks 就会有这个文件了

我们再点击next就可以进行打包了，





6.点击finish，就开始打包正式的apk了







注意：勾选v1，v2

...]]></description><category></category></item><item><title><![CDATA[Android中快速为Recyclerview添加头部]]></title><link>https://blog.youkuaiyun.com/system_err/article/details/106347804</link><guid>https://blog.youkuaiyun.com/system_err/article/details/106347804</guid><author>system_err</author><pubDate>Tue, 26 May 2020 09:10:17 +0800</pubDate><description><![CDATA[为Android RecyclerView添加头部。

调用简单的代码就可以为LinearLayoutManager，GridLayoutManager ，StaggeredGridLayoutManager布局的RecyclerView添加header。

运行效果：



使用说明：



有两种使用RecyclerViewHeader的方法：

方法1

(使用起来非常简单，但是它会添加额外的布局，因此效率略低于第二种方法):

为header创建一个xml布局（可以包括任意view或者ViewGr.]]></description><category></category></item><item><title><![CDATA[Mac下Android SDK配置环境变量的配置（如adb）]]></title><link>https://blog.youkuaiyun.com/system_err/article/details/103472628</link><guid>https://blog.youkuaiyun.com/system_err/article/details/103472628</guid><author>system_err</author><pubDate>Tue, 10 Dec 2019 11:31:59 +0800</pubDate><description><![CDATA[首先找出自己的SDK安装位置，我的Android SDK位置在：

/Users/zlh/Library/Android/sdk


1、打开终端，然后输入
ls -an
查看".bash_profile"文件是否存在，如果存在就跳过第2步

2、创建环境变量配置文件
touch .bash_profile

3、打开并编辑配置文件
open .bash_profile
输入配置内容：

expo...]]></description><category></category></item><item><title><![CDATA[Android 集成微信、QQ、微博、支付宝、银联、华为、OPPO]]></title><link>https://blog.youkuaiyun.com/system_err/article/details/103162832</link><guid>https://blog.youkuaiyun.com/system_err/article/details/103162832</guid><author>system_err</author><pubDate>Wed, 20 Nov 2019 14:45:05 +0800</pubDate><description><![CDATA[效果图



WechatIMG26.png

源码

版本

华为: 2.6.3.301
	QQ: 3.3.3 （6008）
	微博: 4.3.9
	微信: 5.4.0
	银联: 3.4.1
	支付宝: 15.6.4
	OPPO:2.0.0
集成


	添加仓库地址

	
maven { url "https://dl.bintray.com/thelasterstar/maven/" }   ...]]></description><category></category></item><item><title><![CDATA[Android中有关 retrofit设置网络请求超时时间的方式]]></title><link>https://blog.youkuaiyun.com/system_err/article/details/102676142</link><guid>https://blog.youkuaiyun.com/system_err/article/details/102676142</guid><author>system_err</author><pubDate>Tue, 22 Oct 2019 09:11:21 +0800</pubDate><description><![CDATA[private static final OkHttpClient client = new OkHttpClient.Builder().
      connectTimeout(30, TimeUnit.SECONDS).
      readTimeout(30, TimeUnit.SECONDS).
      writeTimeout(30, Tim...]]></description><category></category></item><item><title><![CDATA[Android 使用SharePreferences保存List集合到本地]]></title><link>https://blog.youkuaiyun.com/system_err/article/details/97102631</link><guid>https://blog.youkuaiyun.com/system_err/article/details/97102631</guid><author>system_err</author><pubDate>Wed, 24 Jul 2019 09:32:20 +0800</pubDate><description><![CDATA[保存的基本思路是将List数据转换成json格式数据，再保存


//首先引入gson库
compile 'com.google.code.gson:gson:2.8.1'


保存List集合


List&lt;String&gt; list = new ArrayList&lt;String&gt;();
Gson gson = new Gson();
String data = gson....]]></description><category></category></item><item><title><![CDATA[Java 中快速获取年，月，日，时的方法]]></title><link>https://blog.youkuaiyun.com/system_err/article/details/93616850</link><guid>https://blog.youkuaiyun.com/system_err/article/details/93616850</guid><author>system_err</author><pubDate>Tue, 25 Jun 2019 13:54:52 +0800</pubDate><description><![CDATA[Calendar now = Calendar.getInstance();
System.out.println("年: " + now.get(Calendar.YEAR));
System.out.println("月: " + (now.get(Calendar.MONTH) + 1) + "");
System.out.println("月11: " + (now.get(Calend...]]></description><category></category></item><item><title><![CDATA[GET和POST两种基本请求方法的区别]]></title><link>https://blog.youkuaiyun.com/system_err/article/details/93615389</link><guid>https://blog.youkuaiyun.com/system_err/article/details/93615389</guid><author>system_err</author><pubDate>Tue, 25 Jun 2019 13:34:48 +0800</pubDate><description><![CDATA[GET和POST两种基本请求方法的区别

GET和POST是HTTP请求的两种基本方法，要说它们的区别，接触过WEB开发的人都能说出一二。



最直观的区别就是GET把参数包含在URL中，POST通过request body传递参数。



你可能自己写过无数个GET和POST请求，或者已经看过很多权威网站总结出的他们的区别，你非常清楚知道什么时候该用什么。



当你在面试中被问到这个问...]]></description><category></category></item><item><title><![CDATA[Android6.0以上获取APP设备唯一标识的正确姿势]]></title><link>https://blog.youkuaiyun.com/system_err/article/details/91972755</link><guid>https://blog.youkuaiyun.com/system_err/article/details/91972755</guid><author>system_err</author><pubDate>Fri, 14 Jun 2019 14:32:22 +0800</pubDate><description><![CDATA[问题

在用户没有登录的情况下必须确保设备的唯一性，于是惯性思维想到的肯定是使用DevicesId 来作为设备的唯一标识。

但Android6.0后google对权限加以限制和国内rom的不同等原因导致无法一个稳定的唯一标示

常见唯一标示


	imei
	
	
	Android_id
	
	
	mac地址
	
	
	Installtion ID : UUID
	
	
	Pseudo-Uniq...]]></description><category></category></item><item><title><![CDATA[java中如何高效的判断数组中是否包含某个元素]]></title><link>https://blog.youkuaiyun.com/system_err/article/details/90202961</link><guid>https://blog.youkuaiyun.com/system_err/article/details/90202961</guid><author>system_err</author><pubDate>Tue, 14 May 2019 11:30:10 +0800</pubDate><description><![CDATA[//检查数组是否包含某个值的方法

publicclassTestArray {

//使用List

publicstaticboolean useList(String[] arr,String targetValue){

returnArrays.asList(arr).contains(targetValue);

}

//使用Set

publicstat...]]></description><category></category></item><item><title><![CDATA[PLSQL中增删该查命令]]></title><link>https://blog.youkuaiyun.com/system_err/article/details/89511096</link><guid>https://blog.youkuaiyun.com/system_err/article/details/89511096</guid><author>system_err</author><pubDate>Thu, 25 Apr 2019 10:43:28 +0800</pubDate><description><![CDATA[1 insert
语法: insert into 表名称 values(值1,值2);
insert into person values('github','c++','java','mysql');
insert intopersion(name,password) values('张三',123);

2 delete
语法: delete from 表名称 where 列名称=值
删除...]]></description><category></category></item><item><title><![CDATA[Android图片压缩(按等比例压缩并且质量压缩)]]></title><link>https://blog.youkuaiyun.com/system_err/article/details/89508642</link><guid>https://blog.youkuaiyun.com/system_err/article/details/89508642</guid><author>system_err</author><pubDate>Thu, 25 Apr 2019 09:03:27 +0800</pubDate><description><![CDATA[/**
  * 图片按比例大小压缩方法
  *
  * @param srcPath （根据路径获取图片并压缩）
  * @return
  */
  public static File getimage(String srcPath) {
    BitmapFactory.Options newOpts = new BitmapFactory.Opt...]]></description><category></category></item><item><title><![CDATA[Android项目快速打包上线apk教程]]></title><link>https://blog.youkuaiyun.com/system_err/article/details/89445006</link><guid>https://blog.youkuaiyun.com/system_err/article/details/89445006</guid><author>system_err</author><pubDate>Mon, 22 Apr 2019 08:50:53 +0800</pubDate><description><![CDATA[摘要：首先选择Build-&gt;GenerateSignedAPK,会出现下面的界面第一种情况:没有签名文件点击Createnew(最好签名文件密码和密钥密码设置一样)点击ok,刚创建的签名文件会默认选中,密码自动填充Next然后输入之前设置的MasterPassward,如果没有略过这一步BuildType选择生成apk类型debug测试,release线上。这里我们选择线上点击finish,...]]></description><category></category></item><item><title><![CDATA[Android ANR产生原因和解决办法]]></title><link>https://blog.youkuaiyun.com/system_err/article/details/88644211</link><guid>https://blog.youkuaiyun.com/system_err/article/details/88644211</guid><author>system_err</author><pubDate>Mon, 18 Mar 2019 17:32:42 +0800</pubDate><description><![CDATA[Android ANR产生原因和解决办法
ANR (Application Not Responding)

ANR定义：在Android上，如果你的应用程序有一段时间响应不够灵敏，系统会向用户显示一个对话框，这个对话框称作应用程序无响应（ANR：Application Not Responding）对话框。用户可以选择“等待”而让程序继续运行，也可以选择“强制关闭”。所以一个流畅的合理的应用程...]]></description><category></category></item><item><title><![CDATA[Android 快速集成微信支付和支付宝支付]]></title><link>https://blog.youkuaiyun.com/system_err/article/details/88414126</link><guid>https://blog.youkuaiyun.com/system_err/article/details/88414126</guid><author>system_err</author><pubDate>Tue, 12 Mar 2019 09:34:11 +0800</pubDate><description><![CDATA[先说下微信支付吧，毕竟相对于支付而言，还是支付宝简单快速一点，就留到后面说了

1.如果你已经成功集成了微信登录和分享，直接用你的 libammsdk.jar和 WECHAT_APP_ID就可以了， 那么下面帮你快速集成微信支付。

微信官方的集成文档
	微信官方资源下载
2.接入前可以看看上面链接的文档，不过微信官方的文档写的不够好，好多开发者吐槽，至今也没改善点啥。
3.好了直接说接入，接入微...]]></description><category></category></item><item><title><![CDATA[android实现程序开机自启动]]></title><link>https://blog.youkuaiyun.com/system_err/article/details/87921852</link><guid>https://blog.youkuaiyun.com/system_err/article/details/87921852</guid><author>system_err</author><pubDate>Mon, 25 Feb 2019 18:19:12 +0800</pubDate><description><![CDATA[在安卓中，想要实现app开机自动启动，需要实现拦截广播android.permission.RECEIVE_BOOT_COMPLETED，并且需要使用静态注册广播的方法（即在AndroidManifest.xml文件中定义广播）

 

1、先在AndroidManifest.xml文件中定义广播和声明权限

&amp;lt;uses-permission android:name=&quot;android.pe...]]></description><category></category></item></channel></rss>