- 博客(13)
- 收藏
- 关注
原创 Android学习笔记:Activity的启动模式和标志位
Activity的启动模式有四种:standard、singleTop、singleTask和singleInstance在Android中,任务栈是用来存放Activity的容器,遵循栈的先进后出规则1、standard(默认模式)标准模式,启动新的Activity时在task中创建一个新的Activity实例,不断压入到栈中,即使存在相同的Activity,也会重新创建新的实例。2、singleTop栈顶复用模式,在singleTop模式下,如果栈顶元素是要新建的Activity
2021-04-29 20:03:27
327
原创 Android学习笔记:Looper.loop 死循环为什么不会阻塞掉 UI 线程导致 ANR ?
ActivityThread 是应用程序的入口,在 ActivityThread 中的 main 方法是整个java程序的入口。main 方法中有一个巨大的 Handler,然后会创建一个主线程的 Looper 对象,其实整个 Android 系统就是在一个Looper.loop() 循环的,整个Android的一切都是以Handler 机制进行的,即只要有代码执行都是通过Handler来执行的,而所谓ANR便是Looper.loop没有得到及时处理,一旦没有消息需要处理时,主线程就会被阻塞休眠,当子线程往
2020-08-12 17:34:24
891
原创 Android学习笔记:Android进程间的几种通信方式
进程与线程一般来说,Android系统中为一个应用程序开启一个进程进行执行,在这个应用程序中的所有组件,通过单独的线程进行执行,而其中所有的线程,共享该应用程序进程的所有资源。当一个应用程序启动的时候,Android系统启动一个新的Linux应用程序的进程和一个执行线程。在默认情况下,一个应用程序运行中的所有组件运行在相同的进程和线程中,这个线程一般称为主线程。如果一个应用程序的组件开始的时候,已经存在一个进程,那么应用程序会在与它相同的执行线程中开始这个组件。进程默认情况下,同一应用程序下的所
2020-08-10 14:16:55
587
原创 Android中Binder机制学习
1、Binder机制是什么以及其作用是什么?Binder是android系统里面的进程间通信机制,它是Android中的一个类,实现了IBinder接口。在应用层中我们所使用的activity,service等组件都需要和ActivityManagerService通信,包括我们使用的各种系统service,这种跨进程的通信都是通过binder来完成的。binder可以比喻成Android系统的血管,看不到摸不着但是却非常重要。在Android系统中,不同的app运行在不同的进程中,当一个进程想调用
2020-08-07 14:16:14
268
原创 Android静态库和动态库的区别
在Android中通常把一些公用函数制作成函数库,供其它程序使用。函数库分为静态链接库和动态链接库两种,是在链接的时候才会用到的库,只有C/C++、OC语言才会有链接过程,Java没有。静态库在程序编译时会被连接到目标代码中,程序运行时将不再需要该静态库,并且静态库文件体积较大。后缀是.a,例如libcjson.a。在调用静态库时,如果对静态库中的函数内容进行改变,不仅需要重新编译静态库,还需要对调用静态库的程序重新编译,将静态库编译到目标代码中。动态库在程序编译时并不会被连接到目标代码中,而是在程
2020-08-05 09:21:27
2294
原创 Activity生命周期
onCreate():当我们点击Activity时,系统会调用activity的onCreate()方法,在这个方法中我们会初始化当前activity的布局。onStart():在onCreate()方法执行完成后,activity会执行onStart()方法,此时当前的activity是用户可见状态,但没有焦点,与用户不能交互,一般可在当前方法做一些动画的初始化操作。onResume():在onStart()方法执行完成之后,此时activity会进入onResume()方法中,当前activ..
2020-08-04 20:27:24
163
原创 Java学习笔记:多线程的创建和使用
1、继承Thread类创建线程类:1)定义Thread类的子类,并重写该类的Run方法,该Run方法的方法体就代表了该线程需要完成的任务2)创建Thread类的实例,即创建了线程对象3)调用线程的start方法来启动线程public class MyThread extend Thread{ private int i; @Override public void run() { for(; i<10; i++) {
2020-07-07 10:46:15
191
原创 Java学习笔记:进程和线程的区别
进程相当于一列火车,而线程就相当于一个车厢1、定义进程是指具有一定独立功能的程序关于某个数据集合上的一次运行活动,进程是系统进行资源分配和调度的一个独立单位。线程是进程的一个实体,是CPU调度和分派的基本单位,它是比进程更小的能独立运行的基本单位。线程自己基本上不拥有系统资源,只拥有一点在运行中必不可少的资源(如程序计数器、一组寄存器和栈),但是它可与同属一个进程的其他线程共享所拥有的全部资源。2、关系一个线程可以创建和撤销另外一个线程;同一个进程中的多个线程之间可以并发执行。相对进
2020-07-06 16:26:07
110
原创 Android工作笔记:Android布局管理器
布局管理器(LayoutManager)是Java语言中 管理组件在容器中布局的工具。在Android中,提供了五种布局管理器:线性布局(LinearLayout)android:orientation 控件的方向,有水平horizontal和垂直vertical 两种可选项,默认是垂直方向android:gravity 布局内组件的对齐方式android:layout_wid...
2020-01-20 11:11:50
237
原创 Android工作笔记:Android6.0中Settings启动流程
1、主页面初始化1.1 时序图1.2 启动流程Setting主页面加载的是布局文件dashboard_categories.xml,具体的加载流程可以通过如下分析步骤进行分析。首先看Setting模块下的AndroidManifest.xml文件,其中展示了四大组件,默认启动入口Activity等信息,并且包含了APP的配置信息,系统需要根据里面的内容运行后APP的代码以及显示...
2020-01-10 16:12:24
904
原创 Android工作笔记:Android四大组件
Android 开发的四大组件分别是:活动(activity):用于表现功能;服务(service):后台运行服务,不提供界面呈现;广播接受者(Broadcast Receive):勇于接收广播;内容提供者(Content Provider):支持多个应用中存储和读取数据,相当于数据库。Activity(活动)是用户操作的可视化界面;(1)它为用户提供了一个完成操作指令的窗口。当我们创建完...
2020-01-08 10:04:02
281
原创 Java学习笔记:GET和POST的区别?
HTTP协议(Hyper Text Transfer Protocol,超文本传输协议)是基于TCP/IP的关于数据在万维网中如何进行通信的一种协议,而GET和POST是HTTP协议中的两种发送请求的方法。而GET和POST的具体区别有哪些呢?(相信大家都能够说出以下的区别)1、GET把参数包含在URL中进行传递,而POST则通过request body传递参数2、GET请求在URL中...
2020-01-07 17:23:26
272
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人