- 博客(77)
- 问答 (1)
- 收藏
- 关注
原创 Android ImageView填充方式
ImageView设置填充方式 设置ImageView填充方式的前提是使用src作为设置图片的来源,否则的话,会导致图片填充方式设置无效的情况。1.不保持原图大小,以原图的几何中心点和ImagView的几何中心点为基准,只绘制ImagView大小的图像(以显示完整图片为目标,对原图进行缩放)setScaleType(ScaleType.CENTER_INSIDE);2.不保持原图大小,以原图的几何中心点和ImagView的几何中心点为基准,只绘制ImagView大小的图像(以...
2022-05-30 11:51:58
2627
原创 Android AsyncTask介绍与使用
首先是创建AsyncTask异步任务类,里面的主要有四种方法,分布是开始(onPreExecute),执行(doInBackground),结束(onPostExecute),进度(onProgressUpdate)在执行方法中写要异步完成的任务,其返回执行结果。虽然说目前AsyncTask有缺点被淘汰,但是还是要搞懂其基本使用,该懂的还是要知道。其中3000是超时未结束执行相关操作。
2022-11-11 17:33:38
996
原创 Android正则校验16进制颜色码
输入String类型颜色码,如,0xFFFFFFFF , 0xFFFFFF, 0xFFF, #FF00FFFF , #FF00FF, #FF0等。返回boolen类型值。2. 后面跟8位,或者6位,或者3位16进制颜色码。使用正则校验校验16进制颜色码。1. 0x开头或#开头。
2022-09-24 08:57:41
1190
原创 Android中将Bitmap转换成byte[]数组及ParcelFileDescriptor
Android中将Bitmap转换成byte[]数组及ParcelFileDescriptor
2022-06-27 20:06:27
3916
原创 使用StringBuilder字符串拼接
在开发中我们一般要使用字符串格式化拼接,使用StringBuilder拼接字符最好不过了,话不多说,直接上代码示例,很简单,创建字符串对象,添加就好。 public static String effectTimeUrlSplicing(String time){ StringBuilder sb=new StringBuilder(); sb.append("https://www.fema.gov/api/open/v1/chivedAlerts?$inl
2021-12-26 20:49:57
1998
原创 使用SharePreference保存参数到本地
这就是一个做好的方法,将参数直接对应传进来保存就好了。public static void dataSave(Context context, int deadlines, int intervals, String Severity, int Width, int Height, String Colors, int Size, int SinglePageTime, int StotalTime, String font){
2021-12-17 15:23:09
399
原创 HandlerThread实现循环请求网络并接收。
首先先定义一个主线程中用于接收的handler:本人接收到数据类型是list型private Handler handler=new Handler(){ @SuppressLint("HandlerLeak") public void handleMessage(Message msg){ try { if(msg.what==1){ List<ConstructMessage> response .
2021-12-10 11:30:41
2530
原创 Android开发中实现list中元素中的时间的排序
list中的每一个元素是一个封装的类对象,如下ConstructMessage就是一个消息的封装类;msent就是消息的发送时间。将一个包含多个消息的集合list进行发送时间排序。public class ConstructMessage { private String msent; private String Id; private String event; private String headline; private String descrip.
2021-12-02 19:59:33
2986
原创 Android中创建子线程进行网络访问
//主线程中接收子线程发送的消息并处理private Handler handler=new Handler(){ @SuppressLint("HandlerLeak") public void handleMessage(Message msg){ try { switch (msg.what){ case 0: Strin..
2021-11-25 17:23:55
2821
1
原创 Android系统中获取当前本地时间
获取当前本地时间:static String getNetTime() { try { DateFormat formatter = new SimpleDateFormat("yyyy-MM-dd"); Calendar calendar = Calendar.getInstance(); calendar.add( Calendar. DATE, -1);//获取当前时间减去一天,一天前。 final Strin...
2021-11-12 10:48:48
3641
1
原创 Android异常处理javax.net.ssl.SSLProtocolException: SSL handshake aborted: ssl=0x41ea4068: Failure in SSL
Android异常处理:Caused by: javax.net.ssl.SSLProtocolException: SSL handshake aborted: ssl=0x41ea4068: Failure in SSL library, usually a protocol errorlog如下:10-19 17:40:47.610 805-826/com.example.ipawsplay W/System.err: error:14077410:SSL routines:SSL23_
2021-10-22 16:05:48
2677
3
原创 MySQL视图特性
视图是一个虚拟表,其内容由查询定义。同真实的表一样,视图包含一系列带有名称的列和行数据。视图的数据变化会影响到基表,基表的数据变化也会影响到视图。基本使用:1.创建视图:create view 视图名 as select语句;2.案例:create view v_ename_dname as select ename, dname from EMP, DEPT where EMP.deptno=DEPT.deptno...
2021-10-13 15:50:29
307
原创 Android中定时器的使用
首先在java文件中创建一个定时任务的方法用来执行定时要进行的操作private TimerTask task = new TimerTask() { private String date; public void run() { date = getDateFromSever(); parseJSONWithJSONObject(date); Message message = new Message(); Bundle.
2021-10-11 20:22:44
312
原创 android中创建线程的两种方式及比较
1.通过继承Thread类本身; 继承Thread类实现多线程,要求放入多线程中的类不能继承其他类(Java的单继承特性),如果需要请用 Runnable 实现(接口可以多实现并不影响继承其他类)。2.实现Runnalbe接口; 一个实现Runnable接口的类可以放在多个线程中执行,多个线程可以去执行同一资源;而继承Thread只能实现多个线程分别去处理自己的资源。(通过Runnable创建的多个线程可以由编程人员传入同一个Runnable对象,即执行同一个run方...
2021-10-07 16:55:05
465
转载 http协议规定的数据格式
HTTP协议--超文本传输协议浏览器与服务端之间的应用层协议使用的就是HTTP协议,HTTP协议要求建立在可靠传输协议基础上进行。而通常传输层协议使用的是TCP协议。HTTP协议规定了客户端与服务端传输的数据内容格式,以及通讯的方式。HTTP协议要求客户端与服务端之间的通讯方式为:一次请求一次响应,即:客户端发送一个HTTP请求(request)给服务端,而服务端处理该请求后会给客户端发送一个HTTP响应(response)。在这个通讯的过程中不允许服务端主动发送内容给客户端。HTT
2021-09-29 16:32:01
3903
原创 字节,位之间的换算
字节(Byte)位(bit)1T=1024GB=1024×1024MB=1024×1024×1024KB=1024×1024×1024×1024B(字节)=1024×1024×1024×1024×8 bit(位)由上可知:1字节=8位1kb=1024位=128KB我们经常说的一帧数据是24字节,也就是1帧=24字节=192位。...
2021-09-26 19:58:57
12920
3
原创 Android-view点击事件分发机制
在Android应用中所有的用户界面元素都是由View和ViewGroup对象构建而成。View对象用于绘制屏幕中可以和用户交互的内容。ViewGroup用于存储其他View对象和ViewGroup对象,从而构成界面的布局。就如图中所示,用户界面的布局就是通过View和ViewGroup的结构层次定义的。View和ViewGroup组成了用户界面的View树,在View树中可以清晰的展示View的层次关系。...
2021-09-24 20:38:47
1155
原创 什么是PID,PID的作用。
PID,就是“比例(proportional)、积分(integral)、微分(derivative)”,是一种很常见的控制算法。P,I,D是三种不同的调节作用,既可以单独使用(P,I,D),也可以两个两个用(PI,PD),也可以三个一起用(PID)。这三种作用有什么区别呢?PID控制器的三个最基本的参数:kP,kI,kD。kPP就是比例的意思。它的作用最明显,原理也最简单。我们先说这个:需要控制的量,比如水温,有它现在的『当前值』,也有我们期望的『目标值』。当两者差距不大时,就
2020-11-04 15:55:29
11453
3
转载 android基础开关机流程
一;开机流程:1.system_server服务启动流程启动过程: Loader -> Kernel -> Native -> Framework -> App1.1 Loader层Boot ROM: 当手机处于关机状态时,长按Power键开机,引导芯片开始从固化在ROM里的预设出代码开始执行,然后加载引导程序到RAM;Boot Loader:这是启动Android系统之前的引导程序,主要是检查RAM,初始化硬件参数等功能。1.2 Kernel层Kernel...
2020-11-04 15:31:51
907
转载 AndroidOTA升级流程
这篇及以后的篇幅将通过分析update.zip包在具体Android系统升级的过程,来理解Android系统中Recovery模式服务的工作原理。我们先从update.zip包的制作开始,然后是Android系统的启动模式分析,Recovery工作原理,如何从我们上层开始选择system update到重启到Recovery服务,以及在Recovery服务中具体怎样处理update.zip包升级的,我们的安装脚本updater-script怎样被解析并执行的等一系列问题。分析过程中所用的Android源码是
2020-10-15 09:43:50
1206
原创 OTA基础知识
OTA基础知识1.OTA软件版本升级方式:(1)线刷升级用QFIL/FASTBOOT方式通过下载线连接手机更新版本(2)OTA在线升级通过网络下载升级包到本地后重启手机自动升级需第3方提供整体OTA解决方案(3)SD卡升级将升级包拷贝到SD卡后手动进入recovery模式,通过菜单选择升级包进行升级有的项目客制化成将升级包放在指定目录,按键进入recovery后自动升级,不需要手动选择。2.OTA包的分类(1)整包(刷机包)同一款手机可以直接刷入该zip文件,可用
2020-10-14 15:11:40
5451
原创 malloc,free和new,delete的区别
new和malloc的区别其实new的底层也是使用malloc来实现的,只不过在类类型中比malloc多了一个调用构造函数来初始化的功能1、1.返回值 , new开辟内存需要指定类型,返回指定类型的指针,因此不需要进行强转 malloc的返回值是一个指针,指向一段可用内存的起始地址。因此malloc的返回值需要强转成指定类型的地址2、内存开辟与初始化 ma...
2019-10-18 23:17:36
301
原创 timewait
问题1.time_wait状态是什么2.为什么会有time_wait状态3.哪一方会有time_wait状态4.如何避免time_wait状态占用资源1.time_wait状态是什么简单来说:time_wait状态是四次挥手中服务器向客户端发送FIN终止连接后进入的状态。下图为tcp四次挥手过程可以看到time_wait状态存在于客户端收到服务器Fin并返回ack包时的状态当...
2019-10-08 11:03:23
344
原创 三次握手,四次挥手
TCP三次握手(1)第一次握手:Client将标志位SYN置为1,随机产生一个值seq=J,并将该数据包发送给Server,Client进入SYN_SENT状态,等待Server确认。(2)第二次握手:Server收到数据包后由标志位SYN=1知道Client请求建立连接,Server将标志位SYN和ACK都置为1,ack=J+1,随机产生一个值seq=K,并将...
2019-09-28 12:00:20
273
原创 斐波那契数列
C++实现斐波那契数列int fib(int n){ if (n == 0) { return 0; } else if (n == 1) { return 1; } int fd1; int fd2; int fd; else { fd = fd1 + fd2; fd2 = fd1; fd1 = fd; }}int main(){...
2019-09-27 15:30:23
266
原创 ICMP协议和ICMP协议
一、ICMP协议因为IP协议不提供可靠的传输服务,也不提供端到端或点到点的确认,如果出错可以通过ICMP报告来看,它是在IP模块中实现。TCP/IP协议设计的ICMP协议就是为了弥补IP协议的不足。它是TCP/IP协议族的一个子协议,用于在IP主机、路由器之间传递控制消息。控制消息指网络通不通、主机可否达、路由是否可用等。这些控制消息传递的并不是用户数据,但是对用户数据的传输起到了重要的作用。...
2019-09-25 12:55:24
514
转载 网络五层结构及功能
五层协议体系结构的各层功能1 第五层——应用层(application layer)应用层(application layer):是体系结构中的最高。直接为用户的应用进程提供服务。在因特网中的应用层协议很多,如支持万维网应用的HTTP协议,支持电子邮件的SMTP协议,支持文件传送的FTP协议等等。2. 第四层——运输层(transport layer)运输层(transport laye...
2019-09-25 12:43:09
6282
转载 线程进程的区别;
线程进程的区别体现在4个方面:1、因为进程拥有独立的堆栈空间和数据段,所以每当启动一个新的进程必须分配给它独立的地址空间,建立众多的数据表来维护它的代码段、堆栈段和数据段,这对于多进程来说十分“奢侈”,系统开销比较大,而线程不一样,线程拥有独立的堆栈空间,但是共享数据段,它们彼此之间使用相同的地址空间,共享大部分数据,比进程更节俭,开销比较小,切换速度也比进程快,效率高,但是正由于进程之间独立...
2019-09-25 12:32:46
249
Android中,Settings.Global.putString如何强制保存到本地
2022-05-18
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅