![](https://img-blog.csdnimg.cn/20201014180756926.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
安卓开发
文章平均质量分 91
蜘蛛侠不会飞
关注公众号【不至于编程】,回复【CS】获取30本豆瓣高分计算机就书籍,包括操作系统、计算机网络、数据结构与算法等
展开
-
【安卓 R 源码】从源码角度看Context
1. Context 是什么?Context,中文直译为“上下文”,它描述的是一个应用程序环境的信息,从程序的角度上来理解:Context是个抽象类,而Activity、Service、Application等都是该类的一个实现。SDK中对其说明如下:Interface to global information about an application environment. This is an abstract class whose implementation is provided原创 2021-11-22 16:25:35 · 2282 阅读 · 0 评论 -
【安卓 R 源码】Activity 启动流程及其生命周期源码分析
1. Activty 的生命周期activity的生命周期oncreate()->onstart()->onResume()->onPause()->onStop()->onDestory()onCreate():当我们点击activity的时候,系统会调用activity的oncreate()方法,在这个方法中我们会初始化当前布局setContentLayout()方法。onStart():onCreate()方法完成后,此时activity进入.原创 2021-11-18 18:27:37 · 3698 阅读 · 0 评论 -
【安卓 R 源码】 bindService 源码分析
使用bindService主要分两种情形:1. Service的调用者client与Service在同一个App中;2. Service的调用者client是App1中的一个Activity,而Service是App2中的Service,client与service分属两个App,这种情形下主要用于实现跨进程的通信。bindService 的生命周期:Service被绑定bindService()的时候调用onCreate()和onBind()方法,onStartCommand()方法不被原创 2021-11-10 15:51:09 · 2734 阅读 · 0 评论 -
CompletableFuture 的使用方法
https://www.jianshu.com/p/6bac52527ca4CompletableFuture是java8引入的新类,该类实现了 Future 接口和 CompletionStage 接口,封装了future、forkjoin相关类来执行异步,所以你还是可以像以前一样通过阻塞(get)或者轮询的方式获得结果,尽管这种方式不推荐使用。 CompletionStage 接口代表异步计算中的 不同阶段,以及如何 组合 这些计算阶段。 CompletableStage 接口中有 50 多个.转载 2021-09-01 00:05:40 · 897 阅读 · 0 评论 -
安卓10 来电流程梳理
来电过程, 是由com.android.phone进程发起的,因为 com.android.phone 进程中 Telephony 直接与Moderm层交互, com.android.phone 进程收到来来电消息后,发送消息给 system 进程, system 进程(Telecom作为中介)开始和com.android.phone 进程建立链接, 并通知 UI 进程 (com.android.dialer) 更新。大体上和拨号过程类似。来电流程时序图:对于MO Call来说,一般是由..原创 2021-02-26 19:30:27 · 2564 阅读 · 3 评论 -
安卓10拨号流程梳理
电话应用框架Android电话模块是一个典型的分层结构设计,如下:电话框架分为4个层次,分别为:应用层、框架层(framework层,简称fw)、RIL(Radio Interface Layer)、modem。应用层:app应用,包括Dialer.apk、TeleService.apk、Telecom.apk、InCallUI.apk。其中Dialer.apk跑在com.android.dialer进程中,TeleService.apk跑在常驻进程com.android.phone进原创 2021-02-26 19:29:17 · 4107 阅读 · 0 评论 -
Android的Configuration系统设置
Android中Configuration类专门用于描述手机设备上的配置信息,这些配置信息既包括用户特定的配置项,也包括系统的动态设备配 置。通过Configuration对象提供的基本属性来获取系统的配置信息,例如: public int densityDpi; //得到设备的密度 public float fontScale; //获取当前用户设置的字体的缩放因子 public int KeyboardHidden; //该属性会返回一个boolean转载 2021-02-25 14:54:55 · 2586 阅读 · 0 评论 -
Andriod Preference在电话设置的使用
Android Preference经常使用在例如设置的功能,Android提供preference这个键值对的方式来处理这种情况,自动保存这些数据,并立时生效,这种就是使用android sharedpreferences方式进行保存的,不需要我们手动来写,下面的图片就是使用Preference来进行保存的在手机的通话设置中,也是使用Preference, 在/packages/services/Telephony/src/com/android/phone/CallFeaturesSettin.转载 2021-02-24 14:31:54 · 442 阅读 · 0 评论 -
安卓电话交互桥梁 Telecom【System进程】
1. Telecom所处位置由下图,Telecom的作用是起到交互桥梁,与IncallUI 和 Telephony【Phone进程】交互2. 什么是Telecom 服务telecom所处的代码路径:代码路径:/packages/services/Telecomm /frameworks/base/telecomm/java/android/telecom/Telecom是Android的一个系统服务,其主要作用是管理Android系统当前的通话,如来电显示,接听电话,挂断电原创 2021-02-08 11:57:23 · 4859 阅读 · 4 评论 -
安卓dialer Phone进程【Telephony框架、TeleService】启动过程
1. 相关源码phone进程是开机自启的,其进程是com.android.phonepackages/services/Telephony - src/com/android/phone/PhoneApp.java - AndroidManifest.xmlframeworks/base/services/core/java/com/android/server/ - am/ActivityManagerService.javaframeworks/base/services/jav...原创 2021-02-07 20:06:00 · 2817 阅读 · 0 评论 -
安卓系统启动流程: Zygote进程 –> SystemServer进程
一. 安卓启动流程1)安卓系统启动层次结构Android系统启动的流程图,可以看到系统从启动开始是按照一个流程:Loader->kernel->framework->Application来进行的。1. Loader层Boot Rom:当手机处于关机状态时,长按开机键开机,会引导芯片开始从固化在Rom里预设的代码开始执行,然后加载引导程序到Ram Boot Loader:启动Android系统之前的引导程序,主要是检查Ram,初始化参数等2. Kernerl原创 2021-02-07 15:17:22 · 1019 阅读 · 0 评论 -
蓝牙协议栈详细解析
每个蓝牙设备就是用来提供服务的,而服务就是众多数据的合集,这个合集可以称为数据库,数据库里面每个条目都是一个attribute。原创 2020-08-26 13:41:07 · 2065 阅读 · 0 评论 -
安卓蓝牙开发(1)BLE蓝牙基础知识和一般开发流程
一、BLE(Bluetooth Low Energy)低功耗蓝牙基本知识Android 4.3(API级别18)引入了以低功耗蓝牙(BLE)为中心角色的内置平台支持,并提供应用程序可用于发现设备,查询服务和传输信息的API常见用例包括以下内容:在附近的设备之间传输少量的数据 与Google Beacons等接近传感器进行互动,为用户提供基于当前位置的定制体验。传统蓝牙可以用于数据量比较大的传输,如语音,音乐,较高数据量传输等,但是比较耗电,低功耗蓝牙这样应用于实时性要求比较高,功耗比较原创 2020-09-17 16:13:17 · 4908 阅读 · 1 评论 -
Android四大组件 -ContentProvider 和 BroadcastReceiver
一、内容提供者ContentProvider1. ContentProvider简介内容提供者,它是用在不同的应用程序之间共享数据时,可以把一个应用的数据提供给其他的应用使用。Android已经为常见的一些数据提供了默认的 ContentProvider。数据通过唯一的 URI 标识来源。ContentProvider 将数据看作表,查询 / 操作数据的时候,通过类似数据库操作的 insert / delete / query / update 方法来实现增删查改操作。作为应...原创 2020-08-12 15:46:16 · 553 阅读 · 0 评论 -
安卓的Handler机制、AsyncTask 、Toast和事件监听机制
一. Handler 的使用方法1. Handler 作用在开发中,我们经常会需要做一些耗时的操作:比如下载图片、打开网页、下载视频等。如果将这些耗时的操作放在主线程(UI线程),长时间的阻塞导致应用ANR。必然应该将这些操作放在子线程中处理,这些操作处理过程中,我们需要更新UI界面以告知用户现在具体的进度、状态等信息。所以:在多线程的应用场景中,将工作线程中需更新UI的操作信息 传递到UI主线程,从而实现 工作线程对UI的更新处理,最终实现异步消息的处理但是,多个线程并发执行U...原创 2020-08-04 09:30:20 · 917 阅读 · 0 评论 -
Android 中 ListView 控件的使用
1. ListView 显示原理ListView显示数据原理实际就是MVC设计模式,如下图所示:Model(模型)– 数据集合,用来存储数据组织 View(视图)– ListView,负责数据显示 Controller(控制器)- 负责管理Model,并设置要显示的哪个具体数据.2. ListView 控件继承关系java.lang.Object ↳ android.view.View ↳ android.view.ViewGroup ...原创 2020-07-28 18:46:15 · 525 阅读 · 0 评论 -
安卓 UI 项目:仿照西瓜视频首页 UI界面
1. 最终的效果图2. 总体的大的布局分布实际代码的总体布局:2.1 小布局 之 RelativeLayout在 其中也嵌套着 2 个 RelativeLayout 布局 <RelativeLayout android:layout_marginTop="27dp" ...原创 2020-07-21 23:19:42 · 823 阅读 · 1 评论 -
Android UI 控件 和 对应常用方法详细总结
设计和代码切换,一般情况下,我们 UI 布局都是先拖再细调整,也就是先用设计默认拖出一个大概的布局,然后用代码来微调1. TextView 文本框1.1 常用属性属性 说明 android:id 为 TextView 设置一个组件 id,方便在 Java 中通过findViewById()方法获取到该对象 android:layout_width TextView 的宽度,值一般为wrap_content或者match_pare...原创 2020-07-21 18:18:49 · 1017 阅读 · 0 评论 -
安卓Andriod Studio 2种应用调试的方法
1. 第一种调试方式:使用真机进行调试 使用USB线把手机和电脑连接,最好是使用手机原装的线,有些线可能不支持文件传输。 确保你手机的开发者模式打开 如何打开开发者模式? ①打开手机 设置 --> 系统 --> 关于手机 --> 找到版本号,点击版本号 “七次”,直到页面跳转,输入密码后开发者模式打开 ②返回到 设置里面的系统,打开开发者选项,打开USB调试,选择USB配置 ③可能手机上会弹出是否允许此电脑调试你...原创 2020-07-15 22:25:56 · 705 阅读 · 0 评论 -
安卓Andriod Studio 下载安装
首先下载Android studio安装包,可以从 http://www.android-studio.org/ 下载最新版本下载后进行安装将按照下列步骤进行:下面一步是安装路径的选择D:\android\android studioD:\android\android studioD:\android\android studio文件夹用户可以自行定义下面一定要逐步完成,一步一步仔细操作:点选第二个启动时提示:不能访问 An...原创 2020-07-15 22:22:06 · 715 阅读 · 1 评论