<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[CVSDN的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/CVSDN</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; CVSDN]]></copyright><item><title><![CDATA[Android 多线程优化方法]]></title><link>https://blog.youkuaiyun.com/CVSDN/article/details/103678446</link><guid>https://blog.youkuaiyun.com/CVSDN/article/details/103678446</guid><author>CVSDN</author><pubDate>Tue, 24 Dec 2019 10:18:14 +0800</pubDate><description><![CDATA[链接出自：https://www.sohu.com/a/333326493_465908



目录.png前言1. 基本介绍

在我学习 Android 多线程优化方法的过程中，发现我对多线程优化的了解太片面。

写这篇文章的目的是完善我对 Android 多线程优化方法的认识，分享这篇文章的目的是希望大家也能从这些知识从得到一些启发。

这篇文章分为下面三部分。

第一部分 第一部分讲的是多...]]></description><category></category></item><item><title><![CDATA[Android根据字符串型的资源名获取对应资源id]]></title><link>https://blog.youkuaiyun.com/CVSDN/article/details/103142587</link><guid>https://blog.youkuaiyun.com/CVSDN/article/details/103142587</guid><author>CVSDN</author><pubDate>Tue, 19 Nov 2019 14:59:58 +0800</pubDate><description><![CDATA[有时候我们想动态的根据一个字符串资源名获得到对应的资源id,如根据不同的图片名称获得对应的图片,此时就应该考虑如何实现.

大家知道,在编译Android工程时,系统会自动生成一个静态资源类R,里面根据不同的资源类型有不同的静态内部类,如id,drawable等等,而每个内部类中存放的是对应的16进制的静态资源id属性,而这些属性的属性名就是资源名.常用的方法有两个:

方法一:

利用getRe...]]></description><category></category></item><item><title><![CDATA[动态设置android:drawableLeft|Right|Top|Bottom]]></title><link>https://blog.youkuaiyun.com/CVSDN/article/details/102899160</link><guid>https://blog.youkuaiyun.com/CVSDN/article/details/102899160</guid><author>CVSDN</author><pubDate>Mon, 04 Nov 2019 16:38:04 +0800</pubDate><description><![CDATA[TextView动态设置android:drawableLeft|Right|Top|Bottom

方法一.XML方式


android:drawableBottom="@mipmap/icon_menu_underline"

方法二.JAVA代码

Drawable drawable;

Resources res = getResources();

drawable = res.get...]]></description><category></category></item><item><title><![CDATA[检查 URL 合法性]]></title><link>https://blog.youkuaiyun.com/CVSDN/article/details/102824213</link><guid>https://blog.youkuaiyun.com/CVSDN/article/details/102824213</guid><author>CVSDN</author><pubDate>Wed, 30 Oct 2019 18:01:31 +0800</pubDate><description><![CDATA[方法一：自己总结，亲测可用


public static boolean checkUrl(String url) {
    String resultUrl = url.toLowerCase();
    String regEx = "^(https|http|ftp|rtsp|mms)\\://?([a-zA-Z0-9\\.\\-]+(\\:[a-zA-"
            + ...]]></description><category></category></item><item><title><![CDATA[How can i set a tag for viewpager fragments?]]></title><link>https://blog.youkuaiyun.com/CVSDN/article/details/102629013</link><guid>https://blog.youkuaiyun.com/CVSDN/article/details/102629013</guid><author>CVSDN</author><pubDate>Fri, 18 Oct 2019 17:16:22 +0800</pubDate><description><![CDATA[出自：https://stackoverflow.com/questions/34861257/how-can-i-set-a-tag-for-viewpager-fragments

Fragment fragment = getSupportFragmentManager().findFragmentByTag("android:switcher:" + R.id.pager + ":" + ...]]></description><category></category></item><item><title><![CDATA[Android 获取手机的厂商、型号、Android系统版本号、IMEI、当前系统语言等工具类]]></title><link>https://blog.youkuaiyun.com/CVSDN/article/details/100319890</link><guid>https://blog.youkuaiyun.com/CVSDN/article/details/100319890</guid><author>CVSDN</author><pubDate>Mon, 02 Sep 2019 17:00:47 +0800</pubDate><description><![CDATA[Android 获取手机的厂商、型号、Android系统版本号、IMEI、当前系统语言等工具类

2016年07月18日 23:18:33ZHU_文涛阅读数 69092文章标签：imeiandroidsystemversionlanguage更多

分类专栏：Android技术

版权声明：本文为博主原创文章，遵循CC 4.0 BY-SA版权协议，转载请附上原文出处链接和本声明。
...]]></description><category></category></item><item><title><![CDATA[Android 反编译]]></title><link>https://blog.youkuaiyun.com/CVSDN/article/details/97114167</link><guid>https://blog.youkuaiyun.com/CVSDN/article/details/97114167</guid><author>CVSDN</author><pubDate>Wed, 24 Jul 2019 11:49:31 +0800</pubDate><description><![CDATA[本文参考了：https://www.jianshu.com/p/d3e1946d8ba0，https://www.jianshu.com/p/cbdc494e5941。特此感谢。

这里介绍两种方式：

1：在线反编译 --- 编译地址：http://www.decompileandroid.com/，http://www.javadecompilers.com/apk

这种方式很简单，我们只需...]]></description><category></category></item><item><title><![CDATA[LineGridView]]></title><link>https://blog.youkuaiyun.com/CVSDN/article/details/96475613</link><guid>https://blog.youkuaiyun.com/CVSDN/article/details/96475613</guid><author>CVSDN</author><pubDate>Fri, 19 Jul 2019 10:27:31 +0800</pubDate><description><![CDATA[出自：http://www.jcodecraeer.com/a/anzhuokaifa/androidkaifa/2013/1227/1582.html

public class LineGridView extends GridView{
	public LineGridView(Context context) {
	super(context);
	// TODO Auto-generat...]]></description><category></category></item><item><title><![CDATA[Java多线程之Callable接口的实现]]></title><link>https://blog.youkuaiyun.com/CVSDN/article/details/88745148</link><guid>https://blog.youkuaiyun.com/CVSDN/article/details/88745148</guid><author>CVSDN</author><pubDate>Fri, 22 Mar 2019 16:52:24 +0800</pubDate><description><![CDATA[本文出自:https://www.cnblogs.com/baizhanshi/p/6425209.html,

        https://blog.youkuaiyun.com/qq_19431333/article/details/77483763


			import java.util.concurrent.Callable;

			import java.util.con...]]></description><category></category></item><item><title><![CDATA[okhttp,retrofit,android-async-http,volley应该选择哪一个]]></title><link>https://blog.youkuaiyun.com/CVSDN/article/details/88711263</link><guid>https://blog.youkuaiyun.com/CVSDN/article/details/88711263</guid><author>CVSDN</author><pubDate>Thu, 21 Mar 2019 11:52:58 +0800</pubDate><description><![CDATA[https://www.zhihu.com/question/35189851

首页发现话题

​

登录加入知乎

okhttp,retrofit,android-async-http,volley应该选择哪一个？

关注问题写回答

Android 开发

Android

Android 工程师

Android 应用设计

Android Studio

okhttp,retrofit,...]]></description><category></category></item><item><title><![CDATA[页面上现有ProgressBar控件progressBar，请用书写线程以10秒的的时间完成其进度显示工作]]></title><link>https://blog.youkuaiyun.com/CVSDN/article/details/88707834</link><guid>https://blog.youkuaiyun.com/CVSDN/article/details/88707834</guid><author>CVSDN</author><pubDate>Thu, 21 Mar 2019 10:07:45 +0800</pubDate><description><![CDATA[1: 通过AsyncTask实现

import android.os.AsyncTask;
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.widget.ProgressBar;

public class ProgressBarActivity extends ...]]></description><category></category></item><item><title><![CDATA[序列化与反序列化之Parcelable和Serializable浅析]]></title><link>https://blog.youkuaiyun.com/CVSDN/article/details/84880583</link><guid>https://blog.youkuaiyun.com/CVSDN/article/details/84880583</guid><author>CVSDN</author><pubDate>Fri, 07 Dec 2018 17:14:48 +0800</pubDate><description><![CDATA[在日常的应用开发中，我们可能需要让某些对象离开内存空间，存储到物理磁盘，以便长期保存，同时也能减少对内存的压力，而在需要时再将其从磁盘读取到内存，比如将某个特定的对象保存到文件中，隔一段时间后再把它读取到内存中使用，那么该对象就需要实现序列化操作，在java中可以使用Serializable接口实现对象的序列化，而在android中既可以使用Serializable接口实现对象序列化也可以使用Pa...]]></description><category></category></item><item><title><![CDATA[Android: 子线程创建Handler的两种方法]]></title><link>https://blog.youkuaiyun.com/CVSDN/article/details/84879725</link><guid>https://blog.youkuaiyun.com/CVSDN/article/details/84879725</guid><author>CVSDN</author><pubDate>Fri, 07 Dec 2018 17:00:10 +0800</pubDate><description><![CDATA[方式一: 获取主线程的looper(UI线程的looper---Looper.getMainLooper())

此方法是通过主线程的looper来实现的,简单使用.


//noinspection Convert2Lambda
new Thread(new Runnable() {
    @Override
    public void run() {
        Handler ha...]]></description><category></category></item><item><title><![CDATA[Uninitialized object exists on backward branch 70 原因及解决办法]]></title><link>https://blog.youkuaiyun.com/CVSDN/article/details/84138543</link><guid>https://blog.youkuaiyun.com/CVSDN/article/details/84138543</guid><author>CVSDN</author><pubDate>Fri, 16 Nov 2018 14:19:54 +0800</pubDate><description><![CDATA[本文出自: https://tianshimanbu.com/more/Uninitialized-object-exists-on-backward-branch-70.html

升级Android Stadio 3.1 后的一波三折

前面文章介绍了很多升级Android Stadio 3.1后带来的问题及解决办法：

成功解决org.gradle.api.internal.tasks.co...]]></description><category></category></item><item><title><![CDATA[Java中ArrayList和LinkedList区别]]></title><link>https://blog.youkuaiyun.com/CVSDN/article/details/83015740</link><guid>https://blog.youkuaiyun.com/CVSDN/article/details/83015740</guid><author>CVSDN</author><pubDate>Thu, 11 Oct 2018 17:23:44 +0800</pubDate><description><![CDATA[本文出自:https://www.cnblogs.com/huzi007/p/5550440.html,

https://blog.youkuaiyun.com/bjzhuhehe/article/details/72230559

Java中ArrayList和LinkedList区别

ArrayList和LinkedList的大致区别如下:
1.ArrayList是实现了基于动态数组的数据结构，Lin...]]></description><category></category></item><item><title><![CDATA[2017年Android百大框架排行榜]]></title><link>https://blog.youkuaiyun.com/CVSDN/article/details/82866779</link><guid>https://blog.youkuaiyun.com/CVSDN/article/details/82866779</guid><author>CVSDN</author><pubDate>Thu, 27 Sep 2018 14:31:51 +0800</pubDate><description><![CDATA[2017年Android百大框架排行榜: 

https://mp.weixin.qq.com/s/O8YucJaKOC4mNVfBrgho9A?

http://www.cnblogs.com/jincheng-yangchaofan]]></description><category></category></item><item><title><![CDATA[Android Studio 将引用第三方jar包, Android工程的assets下的文件与Android工程一起打包成jar包]]></title><link>https://blog.youkuaiyun.com/CVSDN/article/details/81946210</link><guid>https://blog.youkuaiyun.com/CVSDN/article/details/81946210</guid><author>CVSDN</author><pubDate>Wed, 22 Aug 2018 16:25:11 +0800</pubDate><description><![CDATA[
def zipFile = file('build/intermediates/bundles/release/classes.jar')
def jarName = &quot;test&quot;;

task makeJar1(type: Jar) {
    delete 'libs/test.jar'
    from zipTree(zipFile)
    //下面的方法将assets文件夹下资源一起...]]></description><category></category></item><item><title><![CDATA[获取assets目录下文件的路径]]></title><link>https://blog.youkuaiyun.com/CVSDN/article/details/81324208</link><guid>https://blog.youkuaiyun.com/CVSDN/article/details/81324208</guid><author>CVSDN</author><pubDate>Wed, 01 Aug 2018 09:17:48 +0800</pubDate><description><![CDATA[1: String path = &quot;file:///android_asset/html/index.htmll&quot;;

这种路径用于webview加载assets下的HTML文件

2: 


//这种方式是直接获取assets下面的***_file.xml的文件
InputStream inputStream = getResources().getAssets().open(&quot;***_file...]]></description><category></category></item><item><title><![CDATA[@SuppressWarnings 注解 的可选值 以及各个值的解释]]></title><link>https://blog.youkuaiyun.com/CVSDN/article/details/80696893</link><guid>https://blog.youkuaiyun.com/CVSDN/article/details/80696893</guid><author>CVSDN</author><pubDate>Thu, 14 Jun 2018 18:49:17 +0800</pubDate><description><![CDATA[本文出自：https://my.oschina.net/u/2433960/blog/878720关键字用途解释allto suppress all warnings抑制所有警告boxing to suppress warnings relative to boxing/unboxing operations抑制装箱、拆箱操作时候的警告castto suppress warnings relati...]]></description><category></category></item><item><title><![CDATA[Error:Execution failed for task ':demo:javaPreCompileMiuiDebug']]></title><link>https://blog.youkuaiyun.com/CVSDN/article/details/80002637</link><guid>https://blog.youkuaiyun.com/CVSDN/article/details/80002637</guid><author>CVSDN</author><pubDate>Thu, 19 Apr 2018 11:41:13 +0800</pubDate><description><![CDATA[问题：Error:Execution failed for task ':demo:javaPreCompileMiuiDebug'.&amp;gt; Annotation processors must be explicitly declared now.  The following dependencies on the compile classpath are found to contain...]]></description><category></category></item></channel></rss>