自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(28)
  • 资源 (8)
  • 收藏
  • 关注

原创 Android studio Handler划线过期警告解决方法

解决办法方法一:忽略警告,可以在类名前加上如下代码@SuppressWarnings("deprecation")方法二:(推荐)将代码替换为如下,方法内新增Looper.getMainLooper()Handler handler = new Handler(Looper.getMainLooper()){ @SuppressLint("HandlerLeak") @Override public void handleMessage(@NonNu..

2021-06-22 15:30:24 2870 2

原创 数据库的四大特征和隔离级别

事务(Transaction)是并发控制的基本单位。所谓的事务,它是一个操作序列,这些操作要么都执行,要么都不执行,它是一个不可分割的工作单位。例如,银行转账工作:从一个账号扣款并使另一个账号增款,这两个操作要么都执行,要么都不执行。所以,应该把它们看成一个事务。事务是数据库维护数据一致性的单位,在每个事务结束时,都能保持数据一致性。事务具有以下 4 个基本特征:数据库的四大特征:1. 原子性(Atomicity)原子性是指事务包含的所有操作要么全部成功,要么全部失败回滚。2. 一致性(Co

2021-04-27 15:25:05 228

原创 Linux 的软链接和硬链接

Linux 链接分两种,一种被称为硬链接(Hard Link),另一种被称为符号链接(Symbolic Link)。默认情况下,ln 命令产生硬链接。硬连接硬连接指通过索引节点来进行连接。在 Linux 的文件系统中,保存在磁盘分区中的文件不管是什么类型都给它分配一个编号,称为索引节点号(InodeIndex)。在Linux 中,多个文件名指向同一索引节点是存在的。一般这种连接就是硬连接。硬连接的作用是允许一个文件拥有多个有效路径名,这样用户就可以建立硬连接到重要文件,以防止“误删”的功能。

2021-04-27 15:15:50 133

原创 Java中线程的创建方式及线程池的工作原理

线程的定义概念:线程是进程中执行运算的最小单位,是进程中的一个实体,是被系统独立调度和分派的基本单位,线程自己不拥有系统资源,只拥有一点在运行中必不可少的资源,但它可与同属一个进程的其它线程共享进程所拥有的全部资源。一个线程可以创建和撤消另一个线程,同一进程中的多个线程之间可以并发执行。Java中线程的四种创建方式1. 继承 Thread 类实现多线程示例:public class ThreadDemo extends Thread { @Override publi

2021-04-22 16:58:12 186

原创 HashMap 和 HashTable 的区别

1.容器整体结构:HashMap的key和value都允许为null,HashMap遇到key为null的时候,调用putForNullKey方法进行处理,而对value没有处理。Hashtable的key和value都不允许为 null。Hashtable遇到null,直接返回NullPointerException。2.容量设定与扩容机制:HashMap默认初始化容量为16,并且容器容量一定是2的n次方,扩容时,是以原容量2倍的方式进行扩容。Hashtable默认初始化容量为11,.

2021-04-22 16:53:45 98

原创 Android—常用热修复框架

前言热修复即<打补丁>,当一个app上线后,如果发现重大的bug,需要紧急修复。常规的做法是修复bug,然后重新打包,再上线到各个渠道。这种方式的成本高,效率低。于是热修复技术应运而生,热修复技术一般的做法是应用启动的时候,主动去服务端查询是否有补丁包,有就下载下来,并在下一次启动的时候生效,这样就可以快速解决线上的紧急bug。热修复的优势无需重新打包发布安装包,用户无感知修复,无需下载最新的应用,节省用户流量;修复的成功率高,避免线上bug带来的业务损失,把损失率降到.

2021-04-22 16:31:23 3066

原创 Android 组件化、模块化、插件化区别详解

前言组件化与模块化已经深入体现到软件开发当中,也是为了让开发者更好的去解决软件上的高耦合、低内聚、无重用的3大代码问题。网上有很多相关内容的介绍文章,各个作者都有自己的一些想法或者总结,看得比较乱,在实践过程中也存在不少疑惑,很多时候不知道选择用组件还是模块,或者有时候根本分不清自己这得是组件还是模块。所以写了下这篇文章,对组件化、模块化、插件化进行一个详细的讲解,希望小伙伴都可以更了解这三者的区别。单工程模式再介绍组件化,模块化、插件化之前,我们不得不说下单工程模式,移动开发诞生之初,我们开发

2021-04-15 17:13:38 847

转载 Android源码分析:LruCache 缓存机制实现原理

一、Android中的缓存策略一般来说,缓存策略主要包含缓存的添加、获取和删除这三类操作。如何添加和获取缓存这个比较好理解,那么为什么还要删除缓存呢?这是因为不管是内存缓存还是硬盘缓存,它们的缓存大小都是有限的。当缓存满了之后,再想其添加缓存,这个时候就需要删除一些旧的缓存并添加新的缓存。因此LRU(Least Recently Used)缓存算法便应运而生,LRU是近期最少使用的算法,它的核心思想是当缓存满时,会优先淘汰那些近期最少使用的缓存对象,有效的避免了OOM的出现。在Android中采用L

2021-04-14 14:15:32 123

原创 Object类中的方法及作用详解

一、引言Java Object 类是所有类的父类,也就是说 Java 的所有类都继承了 Object,子类可以使用 Object 的所有方法。Object 类位于 java.lang 包中,编译时会自动导入,我们创建一个类时,如果没有明确继承一个父类,那么它就会自动继承 Object,成为 Object 的子类。二、Object方法详解通过阅读源码可知Object中含有:Object()、getClass()、hashCode()、equals()、clone()、toString()、noti

2021-04-13 13:35:22 443

原创 Android ANR:Application Not Responding详解

一、ANR概述ANR,全称为Application Not Responding,也就是应用程序无响应。如果 Android 应用的界面线程处于阻塞状态的时间过长,就会触发“应用无响应”(ANR) 的错误。此时系统会向用户显示一个对话框,ANR 对话框会为用户提供强行退出应用的选项。二、ANR的四种类型在Android系统中,应用程序的响应由Activity Manager及Window Manager两个系统服务所监控。通常情况下,应用出现如下四类情况时,系统将报ANR:KeyDispa

2021-04-12 15:10:26 477

原创 Android 10适配获取设备信息

开发过程发现一点适配的问题记录下来,之前在Android获取设备id时一直用AndroidUtilCode的工具类。implementation 'com.blankj:utilcode:1.30.6'// if u use AndroidX, use the followingimplementation 'com.blankj:utilcodex:1.30.6'PhoneUtils.getDeviceId(this)大概的方法也就是如下的一段:@Suppr...

2021-04-12 14:52:29 933

原创 Android-图片加载库Coil介绍

框架介绍Coil是Android上的一个全新的图片加载框架,它的全名叫做coroutine image loader,即协程图片加载库。与传统的图片加载库Glide,Picasso或Fresco等相比。该具有轻量(只有大约1500个方法)、快、易于使用、更现代的API等优势。它支持GIF和SVG,并且可以执行四个默认转换:模糊,圆形裁剪,灰度和圆角。并且是全用Kotlin编写,如果你是纯Kotlin项目的话,那么这个库应该是你的首选。这应该是一个很新的一个图片加载库,完全使用kotlin编写,使用了

2021-01-21 16:26:38 1864

原创 Flutter常用组件的讲解

TextWidget文本组件讲解TextWidget的常用属性TextAlign:文本对齐属性(TextAlign.center,TextAlign.left ,TextAlign.right ,TextAlign.start ,TextAlign.end) maxLines:文本显示的最大行数 overflow:控制文本的溢出效果child: Text("测试文本,测试文本内容显示",textAlign: TextAlign.left, maxLines: 1, overf

2020-12-17 13:16:47 300

原创 Android-EventBus框架详细介绍与简单实现

常用事件消息传递一个实现了监听器接口的类,必须把它自身注册到它想要监听的类中去 使用广播,内部的实现都需要IPC(进程间通信),从传递效率上来讲,可能并不太适合上层的组件间通信 Activity间的消息传递便是通过startActivityForResult和onActivityResult,会产生较多的状态或者逻辑判断,而且Intent或者Bundle传值还得监测类型,容易发生错误EventBus概述EventBus是一款针对Android优化的发布/订阅事件总线。主要功能是替代Intent

2020-12-17 13:15:08 125

原创 Android网络请求忽略https证书验证

在使用Volley和OkHttp,Retrofit的时候,访问https的网站,经常会碰到一个异常就是javax.net.ssl.SSLHandshakeException,大致就是证书相关的异常。一般这种情况下会报的异常是这样的:javax.net.ssl.SSLHandshakeException: java.security.cert.CertPathValidatorException: Trust anchor for certification path not found..

2020-12-17 13:12:46 2453 5

原创 Android——第三方Facebook授权登录获取用户信息

由于项目中需要使用Facebook进行一键登录,所以记录下步骤,其实小伙伴直接看官网也可以,介绍的蛮详细的,先看下效果图吧。遵循以下步骤将Facebook登录添加到您的应用。Facebook开发者网站:https://developers.facebook.com/apps/1.选择应用或新建应用选择应用或新建应用,将应用相关信息输入以下代码片段。2.下载Facebook应用点击下方的按钮,下载Facebook应用。下载Android版Facebook3...

2020-11-13 16:04:18 5080 1

原创 Android——第三方LINE授权登录获取用户信息

由于项目中需要使用LINE进行一键登录,所以记录下步骤,其实小伙伴直接看官网也可以,介绍的蛮详细的,先看下效果图吧。1605177210772.gif将库导入项目在模块级build.gradle文件中添加LINE SDK依赖项。repositories { ... jcenter()}dependencies { ... implementation 'com.linecorp:linesdk:5.0.1' ...}添加Andro.

2020-11-13 10:12:03 2733 1

原创 Flutter开发环境的搭建详解

Flutter开发环境的安装1.系统的基本要求操作系统:windows7以上64位操作系统 磁盘空间:大于3G,最好可以达到5G2.Java环境的安装Java环境下载安装完成后在终端里使用java命令检查3.Flutter SDK的安装下载地址:https://flutter.io/sdk-archive/#windows配置环境变量flutter doctor命令的使用微信截图_20201020143146.png4.Android studio的介绍和安装

2020-10-21 13:51:22 141

原创 Dart编程语言入门——面向对象编程

类于对象1.定义使用关键字class声明一个类 使用关键字new创建一个对象,new可以省略 所有对象都继承与Object类2.属性与方法属性默认会生成getter和setter方法 使用final声明的属性只有getter方法 属性和方法通过 . 访问 方法不能被重载3.类及成员可见性Dart中可见性以library(库)为单位 默认情况下,每一个Dart文件就是一个库 使用_表示库的私有性 使用import导入库计算属性顾名思义,计算属性的值是通过计算而来,本来

2020-10-19 16:29:33 112

原创 Dart编程语言入门——方法&枚举&类型

方法1.方法定义返回类型 方法名(参数1,参数2,...){ 方法体... return 返回值 }void main(List args) {print(getPerson("多仔",18));}String getPerson(String name,int age){ return "name=$name,age=$age";}方法特性 方法也是对象,并且有具体类型Function 返回值类型,参数类型都可以省略 箭头语法:=>expr是{.

2020-10-19 16:28:53 951

原创 Dart编程语言入门——运算符和控制语句

运算符1.算术运算符加减乘除:+,-,*,/,~/,% 递增递减:++var,var++,--var,var--2.关系运算符运算符:==,!=,>,<,>=,<= 判断内容是否相同使用==3.逻辑运算符运算符:!,&&,|| 针对布尔类型运算4.赋值运算符基础运算符:=,??== 复合运算符:+=,-=,*=,/=,%=,~/=5.条件表达式三目运算符:condition?expr1:expr2 ??运算符:expr1??e

2020-10-19 16:28:10 87

原创 Dart编程语言入门——数据类型

变量与常量1.变量使用var声明变量,可以赋予不同类型的值 最好在声明变量时进行初始化,当然也可以在使用时进行初始化 未初始化时,默认值为null 使用关键字Final,声明一个只能赋值一次的变量2.常量使用const声明常量 使用const声明的必须是编译期常量,(编译期常量:在编译阶段就可以确定值)数值型Number,继承num1.整型 Int2.浮点型 double3.数值型操作运算符:+,-,*,/,~/(取整数),%(取余数) 常用属性:isNaN(是否是非数字)

2020-10-19 16:26:42 124

原创 Dart语言介绍以及环境搭建

Dart语言介绍Dart是Google发布的一门开源编程语言 Dart初期目标是成为下一代的web开发语言 Dart目前已可用于全平台开发 Dart是一门面向对象的编程语言应用场景web开发 跨平台移动应用开发(Fultter) 脚本或服务端开发Dart环境搭建1. Dart SDK安装,可以参考官方网站:https://www.dartcn.com/installWindows平台:choco install dart-sdk Linux平台:sudo apt-get in

2020-10-19 16:25:29 208

原创 Flutter超高性能和生态环境介绍

1. Flutter120fps超高性能fps:每秒传输帧数,可以简单理解为每秒画面数采用了GPU渲染技术,一般是使用CPU,GPU是一种图形显示,用Flutter做出来的界面完全符合游戏的标准,游戏的性能可以达到120桢每秒,因为是渲染成了图形,这是谷歌新出的一种技术用在了Flutter上120桢的效果有多好呢,日常电视电影的帧数是24fps ,效果已经很好了,液晶显示器可以达到60hz,相当于60fps,而游戏可以达到80fps,可以很流畅的运行游戏,而Flutter可以达到120fps,所以

2020-10-19 16:24:33 295

原创 Flutter介绍和主流框架的对比

解读Flutter的官方介绍Flutter是谷歌的移动UI框架,可以快速在iOS和Android上构建高质量的原生用户界面。 Flutter可以与现有的代码一起工作。在全世界,Flutter正在被越来越多的开发者和组织使用,并且Flutter是完全免费、开源的。解读重要的三点:跨平台:Linux,Android,IOS,Fuchsia(谷歌新出的操作系统),甚至支持嵌入式开发 原生用户界面:它是原生的,让我们体验更好,性能更好 开源免费:完全开源,可以进行商用Flutter与主流框架的对比

2020-10-19 16:22:50 1037

原创 Android——自定义控件View详解

为什么要自定义控件?1.特定的显示风格2.处理特有的用户交互例:比如原本TextView不能滑动里面的文字,通过自定义控件实现3.优化我们的布局例:通过嵌套实现复杂的布局,但是绘制和测量的效率慢,通过自定义控件实现,提升效率4.封装等例:app内很多控件可以复用,比如首页底部的tab按钮,封装成自定义控件,方便后续使用如何自定义控件?1.自定义属性的声明与获取提取自定义控件的属性,去声明,然后在构造方法里去获取。分析需要的自定义属性:颜色,文字大小,文字,图标等

2020-10-19 16:20:50 216

原创 android百度地图,路线规划增加没有路的虚线。

百度地图的开发过程中,发现路径规划的api接口有一个缺陷,就是只显示有路的路线,在没有道路的情况下,比如我定位到了大厦里面,那路线就是在大厦附近的道路上起始的。而很多单车app我发现解决了这个问题,我也是做单车产品的,然后发现这个问题,百度无果,自己想了一个方法添加了额外的路线。百度地图app有这个功能,可能api没有完善吧。

2017-05-02 11:15:45 1659

原创 Android百度地图API开发——骑行导航。

由于项目中要用到骑行导航这个功能,使用的是百度地图。而百度地图的骑行导航功能也是推出不久的,官网并没有文档说明,但是在demo里有代码块。百度搜了很久,也没有这方面的详细介绍,以及独立的demo。所以写个文章详细介绍一下骑行导航的功能,和如何进行开发,附带独立的demo下载地址。(好几年不写技术博客了,讲解的如果不详细请勿拍砖阿)开发流程:1.百度申请key,这块就

2017-03-14 16:28:47 4370

android开发百度地图之骑行导航

百度地图API,骑行导航功能,Android端。

2017-03-14

极光推送demo修改

极光推送的demo,代码比较多,可能看起来不太方便,我就精简了一下,几行代码完成推送的功能,稍后会加入样式修改,和铃声改变。

2015-10-30

RadioGroup + Fragment

RadioGroup + Fragment切换页面可以点击切换,也可以滑动切换 颜色都可以修改。

2015-10-20

图片点击放大到全屏、可以手势缩放

这个效果其实就和新浪微博一样的,不过做的可能没有那么好的效果.就是点击图片会变成全屏查看的模式,然后可以进行手势缩放。看网上没有这块的,要么是单独的点击图片放大,要么就是缩放的,而且缩放的例子是很多,但是效果都不好看,也不是我要的,这个就是自己结合在了一起了。

2014-11-24

首次安装进入引导页,之后到欢迎页

第一次安装进入引导页,这个引导页我写了三个滑动页面,图片什么的都是我开发用的,也没换,效果很好.然后进入首页,以后在打开应用就是欢迎页显示一会跳到首页面了/

2014-08-27

个人设置里面更改头像图片

和微信的效果差不多,点击头像提示从相机拍照还是本地获取。

2014-07-29

sql+服务端+手机端(注册登录餐馆列表,UI+代码详细)

有数据库的代码,手机端的代码是详细的,包括各种dao、biz、servelt等,手机端的UI及代码也是详细的,包括两端数据的传输和解析,可以实现登录和注册功能。就是一个两端都包括的代码,还有个列表返回的传输,如果能看懂的话,目测写个应用不是什么问题。

2014-05-08

Android ViewFlipper图片水平滑动

说到android的左右滑动效果我们可以说是在每个应用上面都可以看到这样的效果,不管是微博,还是QQ等。实现左右滑动的方式很多,有ViewPaer(不过这个和需要android-support-v4.jar的支持),自定义实现Viewgroup,gallery等都可以达到这种效果。这里做下ViewFliper实现左右滑动的效果。

2014-05-07

空空如也

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

TA关注的人

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