自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 java sleep和wait的区别

1、sleep()是线程类(Thread)的方法,调用会暂停此线程指定的时间,但监控依然保持,不会释放对象锁,到时间自动恢复;wait()是Object的方法,调用会放弃对象锁,进入等待队列,待调用notify()/notifyAll()唤醒指定的线程或者所有线程,才会进入锁池,不再次获得对象锁才会进入运行状态;2、每个对象都有一个锁来控制同步访问,Synchronized关键字可以和对象的锁交...

2019-06-07 13:36:28 170

原创 Cause: android-apt plugin is incompatible with the Android Gradle plugin.

Android 升级到3.4.1后,原来的项目无法通过编译了,让我们看看出现的问题:Cause: android-apt plugin is incompatible with the Android Gradle plugin.Please use ‘annotationProcessor’ configuration instead.该问题发生在module级的build.gradle文...

2019-05-28 14:39:28 1087 1

原创 ERROR: All flavors must now belong to a named flavor dimension.

AndroidStudio升级到3.4.1之后,配置多版本打包运行的时候会提示这个错误(ERROR: All flavors must now belong to a named flavor dimension. Learn more at https://d.android.com/r/tools/flavorDimensions-missing-error-message.html)解决办...

2019-05-28 14:22:02 218

原创 Activity的启动模式

Activity的启动模式参考自-Android开发艺术探索为什么需要启动模式?在默认情况下,当我们多次启动同一个Activity的时候,系统会创建多个实例并把它们一一放入任务栈中,当我们单击back键,会发现这些Activity会一一回退。任务栈是一种“后进先出”的栈结构,这个比较好理解,每按一下back键就会有一个Activity出栈,直到栈空为止,当栈中无任何Activity的时候,系统...

2019-05-25 17:36:49 137

原创 Activity的生命周期-A启动B页面再按返回键时的生命周期

关于Activity的生命周期,这里我们不再阐述,这篇文章主要讲的是从A页面跳转到B页面,然后在B页面按返回键时生命周期的变化。当创建A页面时,Activity A的生命周期为:在A页面点击按钮跳转到B页面,这时候的生命周期为:这时候我们在Activity B按系统返回键:生命周期为:...

2019-05-22 17:43:51 1557

原创 横竖屏切换时Activity的生命周期总结

横竖屏切换时Activity的生命周期总结出去面试的时候,经常会问到横竖屏切换时Activity的生命周期,现在通过代码来总结一下。示例代码如下:public class MainActivity extends AppCompatActivity {public static final String TAG=“MainActivity”;@Overrideprotected void...

2019-04-14 12:19:08 2374

原创 Java 冒泡排序

Java 冒泡排序(Bubble Sort)原理:比较两个相邻的元素,将值大的元素交换至右端。思路:依次比较相邻的两个数,将小数放在前面,大数放在后面。即在第一趟:首先比较第1个和第2个数,将小数放前,大数放后。然后比较第2个数和第3个数,将小数放前,大数放后,如此继续,直至比较最后两个数,将小数放前,大数放后。重复第一趟步骤,直至全部排序完成。举例说明:要排序数组:int[] arr={...

2019-04-13 00:15:20 169

原创 Android Studio开发Java工程

1.在AndroidStudio中想运行Java代码,是new module。2. 新建一个module,project建好后,就可以去创建Java模块,也就是现在就要在打开的项目中新建一个module::file---->new—>new Module。在弹出框中选择Java library。紧接着对module模块名字以及main类名进行设置3. 添加main方法到...

2019-04-12 23:08:03 452

原创 Android 新建项目报错 Resolved versions for app (26.1.0) and test app (27.1.1) differ.

新建一个Android项目的时候,提示如下信息:Conflict with dependency ‘com.android.support:support-annotations’ in project ‘:app’.Resolved versions for app (26.1.0) and test app (27.1.1) differ.See https://d.android.c...

2019-04-12 21:32:07 166

原创 Flutter开发环境的搭建

Flutter是谷歌开源的一套移动UI开发框架,可以快速构建android和ios的原生应用。官方网址:https://flutter.io/Flutter中文网:https://flutterchina.club/一.软件环境本文的操作都是在Windows7上进行的。1.操作系统: Windows 7 (64-bit)2.工具: Flutter 依赖Git命令行工具.Git命令行工具...

2019-04-11 22:31:27 150

原创 清楚地理解Service

话题:清晰地理解 Service。1、Service 的 start 和 bind 状态有什么区别?2、同一个 Service,先 startService,然后再 bindService,如何把它停止掉?3、你有注意到 Service 的 onStartCommand 方法的返回值吗?不同返回值有什么区别?4、Service 的生命周期方法 onCreate、onStart、onBind...

2019-03-08 16:54:46 213

原创 Python 安装requests 和bs4

Python 安装requests 和bs4Python网站爬行神器requests的安装:requests是Python的一个HTTP客户端库,跟urllib,urllib2差不多,那我们为什么要用requests呢?采用官方的说是:python的标准库urllib2提供了大部分需要的HTTP功能,但是API太逆天了,一个简单的功能就需要一大堆代码。下面是requests的安装步骤:安...

2019-03-05 13:25:40 628

原创 理解Java中的synchronized关键字。

重点:理解synchronized的含义、明确synchronized关键字修饰普通方法、静态方法和代码块时锁对象的差异。有如下一个类Aclass A {      public synchronized void a() {}public synchronized void b() {   &n...

2019-02-24 23:43:39 199

原创 Android ProcessException: java.util.concurrent.ExecutionException: com.android.dex. DexIndexOverflow

这就是方法数越界了,解决办法:在Gradle 配置:defaultConfig {      applicationId “XXX”      minSdkVersion 19     &

2019-02-20 22:31:15 501

原创 Android View的基础知识

1、本节的主要内容有View的位置参数、MotionEvent和TouchSlop对象、VelocityTracker、GestureDetector和Scroller对象。1.1 什么是ViewView是Android中所有控件的基类,View是一种界面层的控件的一种抽象,它代表了一个控件。除了View,还有ViewGroup,从名字来看,它可以被翻译为控件组,言外之意是ViewGroup内...

2019-02-14 18:25:20 344

原创 Android 获取assets或者raw目录的视频文件路径播放视频

新版本的开机视频要进行测试,需要先将视频放在App内测试是否能进行播放。在raw目录下的文件构造URI可以播放音频,也能播放视频。通过以下代码获取文件的位置:String uri = “android.resource://” + getPackageName() + “/” + R.raw.media;videoPlayer = (VideoView) findViewById(R.id....

2019-02-14 15:29:19 3625 1

原创 Android 线程

Android沿用了Java的线程模型,一个Android应用在创建的时候会开启一个线程,我们叫它主线程或者UI线程。如果我们想要访问网络或者数据库等耗时操作时,都会开启子线程去处理,从Android3.0开始,系统要求网络访问必须在子线程中进行,否则会抛出NetworkOnMainThreadException异常。说到了线程,我们得讲讲线程的基础知识:什么是进程:进程是操作系统的基础,...

2019-02-02 12:52:32 109

原创 Android中的dp px dip相关概念

Android手机机型众多,分辨率和屏幕大小都很多,导致了Android生态环境的碎片化现象越来越严重。Google公司为了解决分辨率过多的问题,在Android的开发文档中定义了px、dp、sp,方便开发者适配不同分辨率的Android设备。屏幕参数:屏幕大小:指屏幕对角线的长度,通常使用“寸”来度量,例如5.0寸手机、6.0寸手机等。分辨率:分辨率是指手机屏幕的像素点个数,例如72...

2018-10-16 18:43:35 254

原创 java final finally finalize有什么区别

final 用于声明属性,方法和类, 分别表示属性不可变, 方法不可覆盖, 类不可继承. finally 是异常处理语句结构的一部分,表示总是执行. finalize 是Object类的一个方法,在垃圾收集器执行的时候会调用被回收对象的此方法,可以覆盖此方法提供垃圾收集时的其他资源回收,例如关闭文件等. JVM不保证此方法总被调用。 ...

2018-10-01 13:11:51 149

原创 Java Exception和Error的区别

Error类和Exception类的父类都是throwable类,他们的区别是:Error类一般是指与虚拟机相关的问题,如系统崩溃,虚拟机错误,内存空间不足,方法调用栈溢等。对于这类错误的导致的应用程序中断,仅靠程序本身无法恢复和和预防,遇到这样的错误,建议让程序终止。Exception类表示程序可以处理的异常,可以捕获且可能恢复。遇到这类异常,应该尽可能处理异常,使程序恢复运行,而不应该...

2018-09-25 18:54:43 121

原创 谈谈对Java平台的理解

Java特性:面向对象(封装,继承,多态)平台无关性(JVM运行.class文件)语言(泛型,Lambda)类库(集合,并发,网络,IO/NIO)JRE(Java运行环境,JVM,类库)JDK(Java开发工具,包括JRE,javac,诊断工具)Java是解析运行吗?不正确!1,Java源代码经过Javac编译成.class文件2,.class文件经JVM解析或编译运行。(1)解析:.class文...

2018-09-24 20:33:10 250

原创 Android Studio 编写运行Java代码 控制台中文输出乱码

 在使用Android Studio开发时,创建了Java工程,要在控制台输出中文的时候,会输出乱码的问题。Test类直接运行main()方法,控制台输入截图如下,解决方法是:在该Java工程目录下的build.gradle添加如下代码,然后重新运行,tasks.withType(JavaCompile) {    options.encoding = "UTF-8"}控制台...

2018-09-12 22:03:16 528

原创 Handler的工作原理,为什么在子线程中执行new Handler()会抛出异常?

Handler的工作主要包含消息的发送和接受过程。发送过程通过post的一系列方法和send的一系列方法来实现,post的一系列方法最终是通过send的一系列方法来实现的。发送一条消息的典型过程如下:  public final boolean sendMessage(Message msg){        return sendMessageDelayed(msg, 0);}p...

2018-08-20 18:16:16 2139

原创 Android 软引用和弱引用

如果一个对象只具有软引用,那么如果内存空间足够,垃圾回收器就不会回收它;如果内存空间不足了,就会回收这些对象的内存。只要垃圾回收器没有回收它,该对象就可以被程序使用。软引用可用来实现内存敏感的高速缓存。软引用可以和一个引用队列(ReferenceQueue)联合使用,如果软引用所引用的对象被垃圾回收,Java虚拟机就会把这个软引用加入到与之关联的引用队列中。 比如在图片加载框架中,通过弱引...

2018-08-15 17:37:29 130

原创 TCP/IP网络分层

网络分层有不同的模型,有的模型分七层,有的模型分五层,今天学习一下分五层的。从上到下依次是:应用层、传输层、网络层、数据链路层、物理层。接下来我们从下而上来分别来了解这些分层。物理层该层负责比特流在节点间的传输,即负责物理传输。该层的协议即与链路有关,也与传输介质有关。其通俗来讲就是把计算机连接起来的物理手段。数据链路层该层控制网络层与物理层之间的通信,其主要功...

2018-08-15 09:31:43 928

原创 TCP的三次握手和四次挥手

1、三次握手(1)三次握手的详述首先Client端发送连接请求报文,Server段接受连接后回复ACK报文,并为这次连接分配资源。Client端接收到ACK报文后也向Server段发生ACK报文,并分配资源,这样TCP连接就建立了。 最初两端的TCP进程都处于CLOSED关闭状态,A主动打开连接,而B被动打开连接。(A、B关闭状态CLOSED——B收听状态LISTEN——A同步已发...

2018-08-14 18:14:06 116

原创 Kotlin Android环境搭建

Kotlin Android 环境搭建安装 Kotlin 插件Android Studio 从 3.0(preview)版本开始将内置安装 Kotlin 插件。打开 File->Settings ( Mac 为 Preferences) 面板,在左侧找到 Plugins 选项,搜索框输入 "Kotlin" 查找,点击 Install JetBrains plugins,会看到An...

2018-08-07 17:27:53 509

原创 Android 中 px、dp、dip、sp总结

平时做Android开发的时候会经常遇到dp、dip、dpi、px、sp这些单位,今天就跟大家一起学习下这些单位。屏幕尺寸是指屏幕对角线长度,单位是英寸,1英寸=2.54厘米。屏幕分辨率:在橫纵向上的像素点数。单位:px即1px=1个像素点。一般以纵向像素*横向像素表示,如1920*1080Dpi:屏幕像素密度,指每英寸上的像素点数,dot per inch的缩写,与屏幕尺寸和屏幕...

2018-08-06 22:19:34 161

原创 单例模式

单例模式的介绍单例模式是应用最广的模式之一,也是面试的时候经常问的。在应用这个模式时,单例对象的类必须保证只有一个实例存在。许多时候整个系统只需要拥有一个全局对象,这样有利于我们协调系统整体的行为。如在一个应用中,应该只有一个ImageLoader实例,这个ImageLoader中又含有线程池、缓存系统、网络请求等,很消耗资源,因此,没有理由让它构造多个实例。这种不能自由构造对象的情况,就是单例...

2018-08-04 23:18:59 90

原创 线程知识小结

Android沿用了Java的线程模型,一个Android应用在创建的时候会开启一个线程,我们叫它主线程或者UI线程。如果我们想要访问网络或者数据库等耗时操作时,都会开启子线程去处理,从Android3.0开始,系统要求网络访问必须在子线程中进行,否则会抛出NetworkOnMainThreadException异常。说到了线程,我们得讲讲线程的基础知识: 什么是进程: 进程是操作系统的基础,...

2018-08-03 00:26:48 117

原创 Android 6.0申请动态权限

1、动态权限从Android6.0(API23)开始,对系统权限做了非常大的改变,6.0之前用户安装App的时候,只是把App需要的使用的权限统一列出来让用户看一下,App安装后都可以访问这些权限。从6.0开始,一些敏感权限需要在使用的时候动态申请,同时用户可以选择拒绝授权访问这些权利,已授予过的权限,用户也可以去设置界面去关闭授权。对于用户来说提高了安全性,可以防止一些应用恶意访问用户数据,但对...

2018-07-10 19:01:26 219

原创 Android底部返回键等虚拟键盘适配问题

问题:华为手机遮挡了文章底部的评论、分享、点赞等。 需求:需要安卓能自适应底部虚拟按键,用户隐藏虚拟按键时应用要占满整个屏幕,当用户启用虚拟键时,应用能往上收缩,等于是被底部虚拟按键顶上来。解决方案:监听某个视图的变化,当可以看见的高度发生变化时,就对这个视图重新布局,保证视图不会被遮挡,也不会浪费屏幕空间。这一点尤其可用在像华为手机等可以隐藏和显示虚拟键盘上导致屏幕变化的手机上。添加工具类pub...

2018-05-09 17:04:54 3216

原创 java replace和replaceAll

replace和replaceAll是JAVA中常用的替换字符的方法public String replace(char oldChar, char newChar) 在字符串中用newChar字符替代oldChar字符,返回一个新的字符串 public String replaceAll(String regex,String replacement)使用给定的 replacement 字符串替...

2018-03-27 22:02:48 29807

原创 Error:(1, 1) A problem occurred evaluating root project 'app'. > Plugin with id 'com.android.applica

在项目里新建一个Module,出现了如下错误:Error:(1, 1) A problem occurred evaluating root project 'app'.> Plugin with id 'com.android.application' not found。经过多次上网查找一时半会没有找到解决的办法,先删除新建的library,后来查看gradle的时候发现setting....

2018-03-16 18:40:19 20723

原创 Could not resolve com.android.support:appcompat-v7:26.1.0.

新建一个项目的时候报错,如下:Error:Could not resolve all files for configuration ':app:debugCompileClasspath'.Could not resolve com.android.support:appcompat-v7:26.1.0. Required by:project :app No cached version of...

2018-03-13 17:40:04 5522

原创 Service小结

1、Service的start和bind状态有什么区别?区别:(1)生命周期不同 startService:onCreate->onStartCommand->onStart 再次start:onStartCommand->onStart stop:onDestory。 bindService:onCreate->onBind 再次bind:不会再执行onBind unbi...

2018-02-27 18:43:10 167

原创 ShareSDK新浪微博登录提示 21338:sso package or sign error"

新浪微博登录的时候提示 “21338:sso package or sign error”分析问题应该是签名的问题,于是登录微博开放平台,然后查看Android签名。新浪微博android应用的签名工具下载地址:https://github.com/mobileresearch/weibo_android_sdk/blob/master/app_signatures.apk下载安装到手机后输入包名

2017-12-17 15:20:54 8967

原创 SimpleDateFormat的使用

SimpleDateFormat函数的继承关系:java.lang.Object|+----java.text.Format|+----java.text.DateFormat|+----java.text.SimpleDateFormat/**SimpleDateFormat函数语法:G 年代标志符y 年M 月d 日h 时 在上午或下午

2017-12-17 15:19:38 607

原创 支付倒计时

在我们购物的时候会用到支付倒计时这个功能,其实Android已经帮封装好了一个类 CountDownTimer。在一个TextView中不断显示剩下的时间,代码如下:private TextView mTvSurplusTime;private CountDownTimer timer = new CountDownTimer(20*60*1000,1000) {

2017-12-17 15:18:33 1263

原创 Minimum supported Gradle version is 3.3. Current version is 2.14.1.Please fix the project's Gradle s

从github上下载了一个项目学习下,在导入Android Studio的时候出现了如下的错误:Minimum supported Gradle version is 3.3. Current version is 2.14.1.Please fix the project's Gradle settings.href="fixGradleVersionInWrapper">Fix Grad...

2017-12-17 15:17:00 886

空空如也

空空如也

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

TA关注的人

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