自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 动态规划-最大回文字符串

题目:给你一个字符串 s,找到 s 中最长的回文子串。示例 1:输入:s = "babad"输出:"bab"解释:"aba" 同样是符合题意的答案。示例 2:输入:s = "cbbd"输出:"bb"示例 3:输入:s = "a"输出:"a"示例 4:输入:s = "ac"输出:"a"提示:1 <= s.length <= 1000s 仅由数字和英文字母(大写和/或小写)组成来源:力扣(LeetCode)链接:https://leetcode-.

2022-01-22 00:16:49 858

原创 Android动画机制-属性动画

属性动画的原理:属性动画要求动画作用的对象提供该属性的get和set方法,属性动画根据外界传递的该属性的初始值和最终值,以动画的效果多次去调用set方法,每次传递给set方法的值都不一样,确切来说是随着时间的推移,所传递的值越来越接近最终的值。总结一下,我们对object的属性abc做动画,如果想要动画生效,要同时满足两个条件:(1)、object必须要提供setAbc方法,如果动画的时候没有传递初始值,那么还要提供getAbc方法,因为系统要去取adc属性的初始值(如果这条不满足...

2020-08-03 23:52:51 318

原创 Android动画机制-View动画

View动画是通过对场景对象不断的做图像变换而产生的动画效果,作用对象时View,支持4种动画效果:平移、缩放、旋转、透明度。一、View动画的种类四种动画效果分别对应Animation的四个子类。效果可以通过XML实现,也可以通过代码动态实现,因为View动画效果比较固定,所以使用XML来实现可读性更好些。名称 标签xml 子类 平移动画 translate TranslateAnimation 缩放动画 scale ScaleAnimatio...

2020-07-27 23:22:55 253

原创 Android数据存储方式-SQLite数据库

SQLite是Android系统内置的轻量级关系型数据库。一、创建数据库数据库的管理类SQLiteOpenHelper,SQLiteOpenHelper可以对数据库进行创建和升级,它是一个抽象类,有两个抽象方法onCreate、onUpgrade。抽象类我们无法直接使用,需要新建一个类继承它。从最少参数的构造方法可以看出,至少我们需要传入4个参数: context:上下文; name:数据库名字; factory:自定义游标,一般传入n...

2020-07-18 20:44:52 443

原创 Android数据存储方式-SharedPreferences

目录一、存储数据二、读取数据SharedPreferences是使用键值对(key-value)的形式来存储数据的,存储数据的时候,给数据提供一个key,当读取数据的时候,通过这个key来获取对应的数据。一、存储数据使用SharedPreferences存储数据,首先需要得到SharedPreferences对象,方法如下:1、Context类的getSharedPreferences()方法@Overridepublic SharedPreferences getShare

2020-07-17 00:20:01 214

原创 Android数据存储方式-文件存储

文件存储可以存储些简单的文本数据。 1、将数据写入文本,openFileOutput是抽象类Context中的方法,类ContextWrapper继承Context并实现了此方法,此方法有两个参数,第一个是文件名,无后缀的话就是一个无后缀的文件,文件默认放在/data/data/包名/files路径下,第二个是模式,MODE_PRIVATE指的是写入的内容会覆盖掉原文件的内容,MODE_APPEND表示在原文件的内容后面加上此次的内容。方法的返回值FileOutputStream。实现...

2020-07-15 23:09:09 200

原创 Java单例模式的实现方式

目录一、为什么要使用单例模式二、单例模式有什么特点三、单例模式的实现方式1、懒汉式2、饿汉式3、双检锁4、登记式/静态内部类5、枚举一、为什么要使用单例模式 避免一个类的对象被频繁的创建和销毁,减少消耗系统资源。二、单例模式有什么特点 一个类只有一个对象,且构造函数是私有的,外界无法new这个类的对象,对象只能由类的内部进行实例化,此类提供一个公有的获取实例化对象的方法供外界调用来获取对象。三、单例模式的实现方式1、懒汉式...

2020-07-12 16:52:37 212

原创 Android线程

一、线程简单介绍 在Android中,线程分为主线程和子线程。 主线程一般做些UI的操作,子线程一般做些耗时操作。 在操作系统中,线程是操作系统调度的最小单元,也是一种受限的系统资源,所以线程的创建数量是存在上限的,并且线程的创建和销毁都存在系统开销,所以当程序需要频繁的创建和销毁线程是就需要考虑到线程池,线程池中存在一定数量的线程,使用线程池可以避免线程频繁创建和销毁带来的系统开销。Android线程池来源于Java,后面会讲到。二、Java线程三...

2020-07-04 10:59:33 227

原创 Java之线程浅析

一、什么是线程如下代码,就是一个简单的线程,run方法里面是执行代码,可根据需要设置休眠时间。Thread thread = new Thread(new Runnable() { @Override public void run() { //执行任务代码 System.out.println("current thread is : " + Thread.currentThread()); try { Thread.sleep(1000);//线程休眠1000ms

2020-07-04 10:55:13 166

原创 强引用、软引用、弱引用

1、强引用 一般使用的引用都是强引用,即 强引用的对象不会被垃圾回收器回收,即使内存不足抛出异常。2、软引用 只有当内存不足是才会被垃圾回收器回收,使用java.lang.ref.SoftReference表示。3、弱引用 不管内存是否充足,只要垃圾回收器发现了弱引用的对象,都会回收,弱引用使用java.lang.ref.WeakReference表示。...

2020-06-29 23:33:04 103

原创 Android之线程池的浅析

目录一、为什么要使用线程池二、线程池的优点三、执行器Executors四、ThreadPoolExecutor五、常用线程池1、newCachedThreadPool2、newFixedThreadPool3、newScheduledThreadPool4、newSingleThreadExecutor一、为什么要使用线程池 构造一个新的线程是需要较大的系统开销的,如果我们在程序中需要实现大量的生命周期短的线程,如果每个任务都映射到一个单独的线程中,...

2020-06-29 23:28:08 192

原创 Java之线程同步浅析

一、为什么需要线程同步 我们知道,线程的使用可以适用于大量并发的场景,比如购买车票这样的场景,当多个线程需要共享对同一数据的存储,比如车的座位数,如果多个窗口卖票,相当于多个线程对这辆车的剩余座位数做修改,卖票或退票。这样将会导致多个线程相互覆盖,最终实际剩余座位数和记录的座位数不相符。这种情况就是“竞态条件”。二、为什么会出现竞态条件 出现“竞争条件”现象的原因是由于我们的操作不熟原子性的,比如对剩余座位数count的处理如下: ...

2020-06-27 16:35:16 120

原创 Android之Message的使用浅析

我们学习Handler的时候会发现,Handler就是通过把我们需要传递的消息封装到Message中,然后发送Message来实现线程间通信的。一、Message的三种初始化方法:1、Message message = new Message() 直接新创建一个Message对象。2、Message message= Message.obtain() 从Message.obtain()方法的解释中可以明白obtain方法会从全局池里返回一个新的M...

2020-06-21 16:51:00 804

原创 Handler的postDelayed流程

Handler的post系列方法用来执行一个线程。比如:mhandler.postDelayed(runnable, 1000);Handler的postDelayed方法其实也是通过sendMessageDelayed方法实现的。public final boolean postDelayed(Runnable r, long delayMillis){ return sendMessageDelayed(getPostMessage(r), delayMillis);}

2020-06-20 18:38:49 4771

原创 Android线程之IntentService

Android线程之IntentService 面试经常会被问到Service和IntentService的区别,

2020-06-16 23:38:53 174

原创 Android线程之HandlerThread浅析

Android线程之HandlerThreadHandlerThreadHandlerThread继承Thread,是一种可以使用Handler的Thread。

2020-06-16 23:37:24 357

原创 Android线程之AsyncTask

一、线程简单介绍 在Android中,线程分为主线程和子线程。 主线程一般做些UI的操作,子线程一般做些耗时操作。 在操作系统中,线程是操作系统调度的最小单元,也是一种受限的系统资源,所以线程的创建数量是存在上限的,并且线程的创建和销毁都存在系统开销,所以当程序需要频繁的创建和销毁线程是就需要考虑到线程池,线程池中存在一定数量的线程,使用线程池可以避免线程频繁创建和销毁带来的系统开销。Android线程池来源于Java,后面会讲到。二、Java线程三...

2020-06-15 21:32:20 156

原创 Android 消息机制-Handler浅析

Android的消息机制其实主要值得就是Handler的运行机制。 Handler的运行需要底层MessageQueue和Looper支撑。

2020-06-12 23:50:51 237

原创 夜神模拟器adb连接

这里写自定义目录标题夜神模拟器adb连接打开模拟器的开发者选项打开USB调试adb连接夜神模拟器adb连接一直从事机顶盒业务,一般都是直接使用adb connect 机顶盒IP就可以了,但今天使用模拟器一时却不知道怎么连接,也不清楚在哪看模拟器的IP,经过网络查找资料,实践可行,总结下:打开模拟器的开发者选项在模拟器打开设置、关于平板电脑,最下方有版本号信息栏,连续点击即可打开开发者选徐选...

2020-04-06 18:34:05 823

原创 Android-Messenger浅析

Messenger(信使)是进程间通信(IPC)的一种方式,是一种轻量级的IPC方案,底层是AIDL,一次只能处理一个请求,不用考虑线程同步,服务端也不存在并发情形。理解Messenger可以从服务端和客户端来看1、创建服务端Handler(处理消息message);Messenger(接受和发送消息);Messenger将客户端发来的消息message传递给Hanlder处理...

2020-03-01 18:09:07 373

原创 Android启动模式浅析

最近看了些资料,对Android的启动模式有了更深些的理解,现总结下,有错误和不详细的地方,后面会在修正补充。 我们知道,如果不设置启动模式的话,在默认情况下,多次启动同一个Activity,系统会创建多个实例并将它们压入任务栈中,按back键,遵循栈结构再一一出栈,这样就会有个疑问,既然我的任务栈中已经有这个实例了,为什么还要重复创建呢?所以,针对这种情况,An...

2019-12-14 17:38:44 334

原创 android studio 调试环境的一些小坑

1、ConstraintSet, unable to find attribute android:elevationAndroid.support.constraint.ConstraintLayout,在项目里用不到就直接删除了,更改为LinearLayout,结果运行报错删除Build.greadle文件的compile 'com.android.support.constraint...

2019-06-18 11:06:28 164

原创 刚学python遇到的小坑-SyntaxError: (unicode error) 'unicodeescape' codec can't decode

涉及到文件路径的时候,在window系统:'...Desktop\text_file\pi_digits.txt',类似这样的路径会报错SyntaxError: (unicode error) 'unicodeescape' codec can't decode bytes in position 2-3: truncated \UXXXXXXXX escape这样我是因为window \...

2019-04-14 15:06:50 2034

原创 string-array的用法

string-array可以获取XML中的资源例如,在values文件夹中创建arrays.xml文件&lt;string-array name="students_name"&gt;&lt;item&gt;学生1&lt;/item&gt;&lt;item&gt;学生2&lt;/item&gt;&lt;item&gt;学生3&lt;/item&gt;&a

2018-08-31 09:27:33 12715 1

原创 adb 连接盒子

1、电脑连接盒子2、使用xshell连接盒子,显示端口连接成功3、在xshell中,输入命令开启服务 adbd&amp;   回车4、在cmd命令行中连接 adb connect IP:端口

2018-08-23 09:16:39 5413

原创 Android中XML文件的3中主要解析方式(DOM、SAX、Pull)

1、DOM(Document Object MOdel)对象文档模型:DOM实现时首先为XML文档的解析定义一组接口,解析器读入整个文档,然后构造一个驻留内存的树结构,这样代码就可以使用DOM接口来操作整个树结构。由于DOM在内存中以树形结构存放,因此检索和更新效率会更高。但是对于特别大的文档,解析和加载整个文档将会很耗资源。2、SAX(Simple API for XML):是一种基于事件的...

2018-07-19 17:07:46 225

原创 Android网络技术--WebView的用法

应用程序加载网页时,使用WebView控件在应用程序中嵌入浏览器。具体看下示例:布局文件:&lt;?xml version="1.0" encoding="utf-8"?&gt;&lt;LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schem...

2018-07-18 14:08:00 206

原创 Android的5中主要的数据存储方式

Android有5中主要的数据存储方式:1、Android本身的数据库(SQLite数据库):SQlite是一个轻量级的、跨平台的数据库。占用内存小,支持基本的SQL语法,通常用于存储用户信息。2、SharedPrefrences:保存少量数据,并且这些数据的格式简单:字符串型和基本数据类型。SharedPreferences对象本身只能获取数据而不支持存储和修改,存储修改是通过Sha...

2018-07-18 13:28:42 3912

原创 Android的5种基本布局

1、线性布局 (LinearLayout):是一种非常常用的布局,次布局会将它包含的控件在线性方向上依次排列。通过android:orientation属性来确定排列的方向是vertical(垂直)还是horizontal(水平)。2、相对布局(RelativeLayout):也是一种非常常用的布局,通过相对定位的方式让控件出现在布局的任何位置。3、帧布局(FrameLayout):由于定...

2018-07-17 21:50:41 2148

原创 Android的四大组件

1、活动(Activity):简而言之,活动就是我们所看到的界面,是可视化的能够被用户直接看到的组件,软件通过Activity向用户展示软件所设计的画面。2、服务(Service):服务没有用户界面,我们是看不到的,它在后台运行,并且可以长时间运行,也可以和其他组件进行交互。service基本上分为两种形式:    启动状态:应用组件调用startService()方法启动服务,服务便会处...

2018-07-17 21:07:10 106

原创 android studio : Error:(303, 27) 错误: 找不到符号 符号: 方法 sin(float) 位置: 类 FloatMath

Error:(303, 27) 错误: 找不到符号 符号:   方法 sin(float) 位置: 类 FloatMath报错的地方:float distanceInfluenceForSnapDuration(float f) { f -= 0.5f; // center the values about 0. f *= 0.3f * Math.PI / 2.0f

2016-08-10 19:57:35 4593

转载 AndroidStudio怎样导入library项目开源库

百度经验链接:http://jingyan.baidu.com/article/1974b2898917aff4b1f77415.html1、在AndroidStudio中导入Library项目1.启动AndroidStudio后,打开你需要接收Library的项目。比如有两个项目,项目A,和Library项目B,那么打开项目A。图中所示为项目的结构图,点击右上角的File菜单。

2016-08-10 11:49:59 366

原创 android studio导入项目

file --> new --> import module... -->点击右边的有三个点的小方框选择所要导入的项目的位置即可

2016-08-10 10:42:04 492

原创 Error:Execution failed for task ':app:mergeDebugResources'. > Some file crunching failed, see logs f

错误:Error:Execution failed for task ':app:mergeDebugResources'.> Some file crunching failed, see logs for details原因:这是图片格式错了解决:不要把图片的后缀直接修改为.png

2016-08-03 08:54:26 917

原创 android studio去掉标题栏

在values中的styles.xml中的name="AppTheme" parent="Theme.AppCompat">添加.NoActionBar即name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar">

2016-08-01 11:31:21 773

原创 android studio增加网络权限

在AndroidManifest.xml中加入一句android:name="android.permission.INTERNET"/>即可android:name="android.permission.INTERNET"/> <application android:allowBackup="true" android:icon="

2016-07-29 19:11:15 14778

原创 poj 2031 Building a Space Station

Building a Space StationTime Limit: 1000MS Memory Limit: 30000KTotal Submissions: 6835 Accepted: 3333DescriptionYou are a member of the space station engineering

2016-04-19 20:21:13 261

原创 poj 1258 Agri-Net

Agri-NetTime Limit: 1000MS Memory Limit: 10000KTotal Submissions: 49016 Accepted: 20337DescriptionFarmer John has been elected mayor of his town! One of his campa

2016-04-19 17:12:49 258

原创 hdoj 3371 Connect the Cities

Connect the CitiesTime Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 15613    Accepted Submission(s): 4125Problem DescriptionIn 2100, s

2016-04-14 18:32:12 332

原创 poj 1125 Stockbroker Grapevine

Stockbroker GrapevineTime Limit: 1000MS Memory Limit: 10000KTotal Submissions: 32915 Accepted: 18104DescriptionStockbrokers are known to overreact to rumours. You

2016-04-12 21:56:19 257

空空如也

空空如也

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

TA关注的人

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