随笔分类 - Android
摘要:1 环境准备 首先需要准备一台Linux服务器,笔者偏好CentOS,不过Google官方建议是Ubuntu;这里不具体列举需要安装的软件。 2 源码下载 2.1 repo工具 2.2 aosp下载 因为国内被墙的原因,通常会通过国内镜像源的方式来下载(以11.0.0_r40版本为例) 2.2.1
阅读全文
摘要:1. 介绍 Android中的Statusbar包含导航栏(NavigationBar, 位于左侧、右侧或者底部)和状态栏(StatusBar, 位于顶部, 可下拉)两个部分, 位于SystemUI(frameworks/base/packages/SystemUI)模块 2. 初始化 3. 显示和
阅读全文
摘要:1. 使用 1.1 音频参数 1.2 使用实例 2. 流程 参考:<AudioTrack的Play流程><AudioTrack学习笔记>
阅读全文
摘要:开始这篇文章之前,可以先了解<Linux音频编程> 1. 架构 在Android中,Audio整体架构如下 2. Java Audio 在Java层把Audio从功能上分为三类接口 2.1 AudioService AudioService由SystemServer启动,实现了IAudioServi
阅读全文
摘要:1. 介绍 在Android中定位方式通常有两种,GNSS和网络 GNSS(Global Navigation Satellite System)一般是指全球导航卫星系统,如美国的GPS、俄罗斯的Glonass、欧洲的Galileo、中国的北斗卫星导航系统网络定位是当设备通过基站或WiFi连入网络后
阅读全文
摘要:1. HAL 1.1 HAL介绍 1.2 分类 Android 8.0以前的HAL可分为传统HAL(Stub HAL)和旧版HAL(Legacy HAL) 1.3 实现 2. HIDL 2.1 介绍 2.2 分类 3. HIDL实现 HIDL实现分为三个部分,HIDL接口、服务端和客户端 2.3.1
阅读全文
摘要:1. 介绍 Zygote是Android系统创建新进程的核心进程,负责启动Dalvik虚拟机,加载一些必要的系统资源和系统类,启动system_server进程,随后进入等待处理app应用请求 Zygote涉及的主要代码如下 frameworks/base/cmds/app_process/App_main.cpp frameworks/base/core/jni/AndroidRuntime.c...
阅读全文
摘要:上一篇: <Android binder介绍(上)> 5. Java Binder Android中也实现了Java层的binder接口 主要代码如下 5.1 基础类 5.2 ServiceManager ServiceManager类是servicemanager在Jave层代理, 对应nativ
阅读全文
摘要:1. 介绍 Binder是Android下基于C/S架构的IPC机制,基于开源OpenBinder 从实现上来说可分为Binder驱动、ServiceManager、Server、Client四个组成部分 2. Binder驱动 Binder驱动代码主要位于drivers/android目录 2.1
阅读全文
摘要:上一篇: <Android init介绍(上)> 5. AIL 在init启动过程中,系统服务等均是通过解析rc文件来启动,而rc文件则是由Android初始化语言(Android Init Language)的脚本写成 5.1 格式介绍 AIL以Section为区分,由如下import、actio
阅读全文
摘要:1. 介绍 init进程是Linux系统第一个用户进程,是Android系统应用程序的根进程,即1号进程(PID为1);Android中的init文件位于/init,代码位于system/core/init目录 Linux中第一个进程为init_task,也即0号进程(PID为0),init进程由init_task进程fork而来,在kernel初始化完成后init_task便化身为idle进程 ...
阅读全文
摘要:1. 介绍 Android网络服务主要包括如下四个部分 2. NetworkManagementService NetworkManagementService是重要的网络服务,通过NativeDaemonConnector类建立和netd的联系,实现对物理接口进行操作;它封装了关于接口、网络、防火
阅读全文
摘要:1. 介绍 BroadcastReceiver用于接收广播事件(Intent), 是Android四大组件之一 2. 使用 2.1 实现广播接收类 实现一个广播收类继承BroadcastReceiver类, 并覆写onReceive()方法 public class MyBroadcastReceiver extends BroadcastReceiver { @Override ...
阅读全文
摘要:1. 介绍 SQLite是一款轻型的数据库, 是遵守ACID的关系型数据库管理系统, Android系统已经在框架中适配接口供用户使用. 2. 数据类型 SQLite采用的是动态数据类型, 会根据存入值自动判断.SQLite具有以下五种常用的数据类型: 存储类 描述 NULL NULL 值 INTEGER 带符号的整数,根据值的大小存储在 1、2、3、4、6 或 8 字节中 REAL ...
阅读全文
摘要:1. 介绍 Handler允许向关联线程的消息队列(MessageQueue)发送消息(Message)和可执行对象(Runnable).每个Handler实例都与某个线程(即创建该Handler的线程)及该线程的消息队列所关联 Handler主要有两种用途 - 调度消息和可执行对象在未来某个时间点的处理 - 在其他线程中执行动作 2. 实例 2.1 基本实例 注意: 实例中myRunnable方...
阅读全文
摘要:1. 介绍 本文介绍了Android控件的点击事件 Android控件点击(onClick)事件可以用如下三种方式来实现 2. 实现onClick方法 在layout的xml中指定onClick方法, Activity中实现该方法. 通常用于Button. File: res/layout/activity_main.xml File: java/com/xxx/proj/Mai...
阅读全文
摘要:1. 介绍 Android控件大多位于android.widget, android.view.View为他们的父类对于Dialog系列, android.app.Dialog为父类 Android的原生控件, 一般是在res/layout下的xml文件中声明然后在Activity通过使用super.setContentView(R.layout.layout_name)来加载layout在Act...
阅读全文
摘要:1. 介绍 本文介绍了Android四大组件之一的Activity 2. 生命周期 Activity的生命周期图如下所示 Activity生命周期的几个过程如下: 1. 启动Activity:系统会先调用onCreate方法, 然后调用onStart方法, 最后调用onResume, Activity进入运行状态 2. 当前Activity被其他Activity覆盖其上或被锁屏: 系统会调用o...
阅读全文
摘要:1. 介绍 因为某些原因, 笔者需要在android上开发, 使用adb比较麻烦, 于是想使用sshd. 推荐的软件是openssh, 其他选择有dropbear, mosh.当然还有其他选择, 如termux, 这里不予讨论 2. 编译 在Android中已经有openssh包, 位于extern
阅读全文