自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(85)
  • 收藏
  • 关注

转载 Java:List 去重的 6 种方法,这种方法最完美!

这样不就没有重复数据的问题了嘛?Stream 实现去重功能和其他方法不同的是,它不用新创建集合,使用自身接收一个去重的结果就可以了,并且实现代码也很简洁,并且去重后的集合顺序也和原集合的顺序保持一致,是我们最优先考虑的去重方法。此方法的优点的:理解起来比较简单,并且最终得到的集合也是有序的,这里的有序指的是新集合的排列顺序和原集合的顺序是一致的;此方法的实现比上一种方法的实现代码要少一些,并且不需要新建集合,但此方法得到的新集合是无序的,也就是新集合的排列顺序和原集合不一致,因此也不是最优的解决方案。

2023-09-26 11:33:53 6134

原创 Android依赖冲突:Program type already present

https://blog.csdn.net/Calvin_zhou/article/details/80880501

2019-09-11 15:43:39 846

转载 Android uses-sdk tools:overrideLibrary

在Android项目中,如果我们自己添加的库兼容的最低版本与项目设置的版本不同的时候,在运行项目的时候会出现错误信息提示。以Timber为例Timber error根据提示的建议,我们可以这样修复:在清单文件的<manifest>中写上<uses-sdk tools:overrideLibrary="timber.log"/>,这样问题就解决了。如果再添加...

2019-07-18 10:37:22 10183

转载 More than one file was found with OS independent path 'META-INF/DEPENDENCIES'

报错:Error:com.android.builder.merge.DuplicateRelativeFileException:More than one file was found with OS independent path 'META-INF/DEPENDENCIES'在报错的module下的builde.gradle文件中加入如下配置项:android{ //处...

2019-07-04 14:31:27 865

转载 AndroidStudio 代码全红,但可正常运行解决方法及解决后续代理的问题

一、自带清除缓存点击AndroidStudio菜单File -> Invalidate Caches/Restar… ,在弹出的对话框中点击Invalidate and Restar。等待AS清理并自动重启。二、删除user目录下.AndroidStudio中的文件但我发现使用网上说的第一种方案不行,那么我就又查了下,用了其他的方法关闭AndroidStudio,进入...

2019-06-26 15:02:42 717

原创 Kotlin学习的相关文章

Kotlin+组件化开发实践—开源项目Designer-App

2019-06-22 16:10:19 104

转载 RESTful API 最佳实践

【转载】RESTful API 最佳实践RESTful是目前最流行的 API 设计规范,用于 Web 数据接口的设计。它的大原则容易把握,但是细节不容易做对。本文总结 RESTful 的设计细节,介绍如何设计出易于理解和使用的 API。一、URL 设计1.1 动词 + 宾语RESTful 的核心思想就是,客户端发出的数据操作指令都是"动词 + 宾语"的结构。比如,GET...

2019-06-22 15:55:14 103

转载 Android SDK-----unable to resolve dependency for:xxx

在build project 之后,报unable to resolve dependency for:xxx的错误这个是添加依赖的过程中报错,无法添加依赖。1.如果是刚安装Android Studio,先检测是否为离线模式。离线模式当然没有网络,当然就无法下载依赖了检查 File-->Settings...-->Build, Execution, Deployment--...

2019-06-10 18:45:39 665

原创 Android的Canvas-----SurfaceView

https://www.cnblogs.com/wytiger/p/5693569.htmldemohttps://www.jianshu.com/p/bbe4b14a11cdhttps://blog.csdn.net/tantion/article/details/81109365https://www.cnblogs.com/hyzhou/p/3296526.htm...

2019-03-03 10:10:57 265

转载 Android基础操作-----SuppressLint和SuppressWarnings

一、SuppressLint1)SuppressLintLint是一个静态检查器,它围绕Android项目的正确性、安全性、性能、可用性以及可访问性进行分析。它检查的对象包括XML资源、位图、ProGuard配置文件、源文件甚至编译后的字节码。Lint包含了API版本检查、性能检查以及其他诸多特性。可以使用@SuppressLint标注忽略指定的警告。如果想去掉的话,可以右键点工程...

2019-01-30 10:13:01 36059 2

原创 Android安全-----相关工具

工具分类 工具名称 工具描述 PC端工具 AndroidKiller Androidkiller是目前市面上反编译apk最为方便、功能最强大的集成工具,支持插件扩展。 Jeb Jeb一款强大的反编译dex到Jav...

2019-01-22 13:40:19 195

转载 Android SDK-----修改配置文件夹

转自:https://blog.csdn.net/lxlmycsdnfree/article/details/79914190Android studio安装之后一般默认在c:/user/userid(*****)/;(比如:c:/user/xiaohong/)其他软件在安装中要创建缓存文件夹,那么也会在这个目录创建,比如Notepad++等这三个文件夹的作用:.android 这...

2019-01-17 13:34:46 936

原创 Android三方控件-----XRecyclerView改进

一、介绍一个实现了下拉刷新,滚动到底部加载更多以及添加header功能的的RecyclerView。使用方式和RecyclerView完全一致,不需要额外的layout,不需要写特殊的adater。加载效果内置了AVLoadingIndicatorView上的所有效果,可以根据需要指定。项目地址:https://github.com/jianghejie/XRecyclerView基...

2019-01-12 20:10:12 687

转载 Android基础操作-----正则表达式

转载:http://www.runoob.com/regexp/regexp-syntax.html一、举个常用的例子//字母、数字、汉字、标点符号String nowImput = inputStr.substring(start, start+count);String regex = "^[A-Za-z0-9\u4e00-\u9fa5`~!@#$%^&amp;*()+=|{}':...

2019-01-10 09:02:43 287

转载 Android基础操作-----解析xml

转载:https://www.cnblogs.com/zhaoyanjun/p/4570290.html一、使用xstreamXStream是一个开源项目,一套简单实用的类库,用于序列化对象与XML对象之间的相互转换。将XML文件内容解析为一个对象或将一个对象序列化为XML文件。1、下载工具xstream下载最新版本地址:https://nexus.codehaus.org/con...

2019-01-07 14:57:56 128

原创 Android性能优化-----代码(Android)

一、硬件加速从Android 3.0开始就支持硬件加速,使得绘制View的时候更加平滑。我们经常会使用会在Application级别或者在Activity级别中开启硬件加速,希望获取到更好的操作体验。。默认是关闭的,可以在Application,Activity,Window,View这四个级别中开启:1)Application:在Manifest中application标签指定andro...

2019-01-06 17:42:15 701 1

原创 Android性能优化-----代码(Java)

一、变量的使用1)变量定义    私有内部类要访问外部类的变量或方法时,其成员变量不要用private,因为在编译时会生成setter/getter,影响性能,是可以设置为public;    简单的getter/setter方法应该被置成final,这会告诉编译器,这个方法不会被重载;    临时变量提高Java代码性能2)如果方法用不到成员变量,可以把方法申明为static,性能会...

2019-01-06 17:41:17 251

原创 Android性能优化-----卡顿、crash

一、性能问题主要总结为4个类别:1、卡顿:使用时避免出现卡顿,响应速度快,减少用户等待的时间,满足用户期望。2、crash:减低 crash 率和 ANR 率,不要在用户使用过程中崩溃和无响应。3、耗电:节省流量和耗电,减少用户使用成本,避免使用时导致手机发烫。4、包大小性能问题的主要原因,但归根到底,不外乎内存使用、代码效率、合适的策略逻辑、代码质量、安装包体积这一类问题。二、...

2019-01-04 12:48:29 1011

原创 Java基础-----判断相等

一、equals()、==、compareTo()equals()用于判断值,==用于判断比较内容和内存地址是否相等”.equals()”点运算符只能用于类的成员或者方法,所以基本的数据类型(逻辑型boolean,字符型char,整型byte,short,int,long,浮点型float,double)都不能使用.equals进行判断,此时只能使用“==”进行判断,此时“==”的意义只是...

2019-01-04 10:45:52 1626

原创 Android生物识别-----BiometricPrompt

到了AndroidP,FingerprintManager就正式退役了,系统新增了BiometricPrompt接口,从接口名字'生物识别'也能看出来,今后的安全验证功能,将不会局限于指纹了,应该还会加入面部识别等等。 参考:https://blog.csdn.net/love_xiaozhao/article/details/81316145https://developer.and...

2018-12-29 13:53:01 5320

原创 Android SDK-----Android9.0

一、Android err_cleartext_not_permitted由于 Android P 限制了明文流量的网络请求,非加密的流量请求都会被系统禁止掉。解决方案参考这个https://blog.csdn.net/qq_18620851/article/details/80617549https://stackoverflow.com/questions/45940861/andro...

2018-12-29 11:14:44 3845

原创 Android SDK-----Android8.0

Android信版本-----Android8.0

2018-12-29 11:10:03 777

原创 Android SDK-----Android7.0

Android信版本-----Android7.0

2018-12-29 11:09:44 608

原创 Android生成jar-----windows命令行

一、编译目录方法一、使用AS等编译工具进行编译成.class文件,在App\build\intermediates\classes\release\tztSztLevel2SDK的目录下方法二、进入源文件夹进行编译cd tztSztLevel2SDKcd src (然后进入src源文件夹)javac *.java(可以指定输出目录,javac -d ..\classes *...

2018-12-28 11:08:22 397

原创 Android提高性能-----Bitmap

Bitmap

2018-12-23 11:37:52 166

原创 Android内存泄漏------常见场景+

一、内存管理知识1、内存泄漏: 1) 常发性内存泄漏。发生内存泄漏的代码会被多次执行到,每次被执行的时候都会导致一块内存泄漏。 2) 偶发性内存泄漏。发生内存泄漏的代码只有在某些特定环境或操作过程下才会发生。常发性和偶发性是相对的。对于特定的环境,偶发性的也许就变成了常发性的。所以测试环境和测试方法对检测内存泄漏至关重要。 3)一次性内存泄漏。发生内存泄漏的代码只会被执行一次,或者由于算...

2018-12-23 11:23:15 230

原创 Android内存泄漏------常见场景

内存管理和引用类型内存泄漏的检测流程、捕捉以及分析1、单例造成的内存泄露单例模式是非常常用的设计模式,使用单例模式的类,只会产生一个对象,这个对象看起来像是一直占用着内存,但这并不意味着就是浪费了内存,内存本来就是拿来装东西的,只要这个对象一直都被高效的利用就不能叫做泄露。实质是静态变量引用Activity,在getInstance(Context context)方法中传入的参数...

2018-12-23 11:22:14 889

原创 Android多线程-----异步(IntentService)

一、Service 是什么1、大家随口就能答得上来,Service是一个在后台执行长时间运行操作而不用提供用户界面的应用组件,可由其他组件启动,即使用户切换到其他应用程序,Service 仍然在后台继续运行。2、service的弊端:service既不是独立的进程也不是独立的线程,是依赖于主线程的,所以是不建议在service里面做过多的耗时操作的,避免ANR。3、Service 有...

2018-12-23 10:27:26 285

原创 Android多线程-----异步(Handlers)

一、为什么要使用Handlers?因为,我们当我们的主线程队列,如果处理一个消息超过5秒,android 就会抛出一个 ANP(无响应)的消息;所以,我们需要把一些要处理比较长的消息,放在一个单独线程里面处理,把处理以后的结果,返回给主线程运行,就需要用的Handler来进行线程建的通信。Message对象封装了所有的消息,而这些消息的操作需要Handler(消息处理类)类完成。什么是ha...

2018-12-16 21:42:51 201

原创 Android多线程-----异步(AsyncTask)

一、总述在Android当中,提供了异步消息处理机制的两种方式来解决线程之间的通信问题,一种是通过Handler的机制(这种方式在后面的博客中将详细介绍),还有一种就是今天要详细讲解的 AsyncTask 机制。Android中的工作者线程主要有AsyncTask、IntentService、HandlerThread,它们本质上都是Handler与线程池的封装。关于线程和线程池相关知识的...

2018-12-16 15:36:37 254

原创 Android多线程-----UI线程

Android中的工作者线程主要有AsyncTask、IntentService、HandlerThread,它们本质上都是对线程或线程池的封装。关于线程和线程池相关知识的介绍,请参考这两篇博文:Java核心技术点之多线程    深入理解Java之线程池...

2018-12-16 15:15:48 114

转载 Android多线程-----异步的几种方法

在Android项目中,有经验的开发人员都知道,一些耗时的IO操作等都必须在子线程中去操作,那么可以有哪些方法来开启子线程呢,一般可以使用Java中自带的几种方法,也可以使用Andorid特有的一些类。用Java来实现异步主要有两种方法来实现异步,继承Thread类和实现Runnable接口1.继承Thread类public class MyThread extends Threa...

2018-12-16 15:07:19 395

转载 Android多线程-----并发和同步(原子变量)

在java中的变量在++等操作是不是原子操作,分为先加一,然后赋值,从而在多线程编码时需要加上synchronizeed,为了增加易用性,java当前提供了原子变量,当前的原子变量有AtomicBoolean、AtomicInteger、AtomicLong、AtomicReference等,其特点就是操作的原子性,以下代码演示了他们的用法。package AtomicTest; impo...

2018-12-16 11:52:46 1886

原创 Android多线程-----并发和同步(wait与notify)

 wait与notify

2018-12-16 11:47:01 644

转载 Android多线程-----并发和同步(volatile)

volatile是Java提供的一种轻量级的同步机制,在并发编程中,它也扮演着比较重要的角色。同synchronized相比(synchronized通常称为重量级锁),volatile更轻量级,相比使用synchronized所带来的庞大开销,倘若能恰当的合理的使用volatile,自然是好事。与锁相比,Volatile 变量是一种非常简单但同时又非常脆弱的同步机制,它在某些情况下将提供优于...

2018-12-16 11:38:57 542

原创 Android多线程-----并发和同步(Lock)

一、为什么需要Lock如果一个代码块被synchronized修饰了,当一个线程获取了对应的锁,并执行该代码块时,其他线程便只能一直等待,等待获取锁的线程释放锁,而这里获取锁的线程释放锁只会有两种情况:1)获取锁的线程执行完了该代码块,然后线程释放对锁的占有;2)线程执行发生异常,此时JVM会让线程自动释放锁。那么如果这个获取锁的线程由于要等待IO或者其他原因(比如调用sleep方法)...

2018-12-16 11:14:15 1362

原创 Android多线程-----并发和同步(synchronized)

一、锁对象的内置锁和对象的状态之间是没有内在的关联的,虽然大多数类都将内置锁用做一种有效的加锁机制,但对象的域并不一定通过内置锁来保护。当获取到与对象关联的内置锁时,并不能阻止其他线程访问该对象,当某个线程获得对象的锁之后,只能阻止其他线程获得同一个锁。之所以每个对象都有一个内置锁,是为了免去显式地创建锁对象。所以synchronized只是一个内置锁的加锁机制,当某个方法加上synchr...

2018-12-15 22:32:01 1326

原创 Android多线程-----并发和同步(ThreadLocal)

一.对ThreadLocal的理解       很多地方叫做线程本地变量,也有些地方叫做线程本地存储,其实意思差不多。可能很多朋友都知道ThreadLocal为变量在每个线程中都创建了一个副本,那么每个线程可以访问自己内部的副本变量,也就是进行数据隔离。       在看很多博客的时候,总是有很多作者在描述ThreadLocal的作用是数据隔离,并且是每一个线程复制了一份,每个线程的访问的...

2018-12-15 16:47:45 368

转载 android技术-----ListView和RecyclerView

一、RecyclerView在很多方面能取代ListView,Google为什么没把ListView划上一条过时的横线?ListView采用的是RecyclerBin的回收机制在一些轻量级的List显示时效率更高。RecyclerView 与 ListView 的主要区别:1、布局效果对比2、常用功能与API对比二、在Android L引入嵌套滚动机制(NestedScrollin...

2018-12-15 14:30:54 1115

转载 Android技术----Activity源码

一、Activity相关为什么下边不睡眠可以设置setText(),添加 睡眠1秒就抛出异常?看下面代码:public class MainActivity extends AppCompatActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.on...

2018-12-15 14:30:29 205

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除