
Android
文章平均质量分 57
Android
四季帆
汽车电子、bsp
展开
-
init进程
1. 作用kernel 启动完成后会启动一个init 进程,这是用户空间的第一个进程,往后所有的用户进程都是在init 进程的基础上fork 出来的。2. 服务启动的过程init进程对应的源文件是system/core/init/init.c文件;system/core/init/init.c文件main函数中parse_config_file(init.rc)读取并解析init.rc文件内容,将service信息放置到system/c...原创 2021-07-08 23:11:55 · 819 阅读 · 0 评论 -
Framework
0. 声明本人并未深入研究过 Android的framework和从事framework的开发,以下内容都是我根据网络上各路大神的博客、知乎和B站视频所讲述的内容,以及我自己的理解整理而成,这其中极可能会有错误,各位看官要小心!!!1. android应用程序到底层驱动的流程apps-->java api frameworks-->android runtime(ART即虚拟机)-->Native C/C++ library -->...原创 2021-07-01 22:25:07 · 544 阅读 · 4 评论 -
Android快速编译
1. 获取编译所用的命令和配置source build/envsetup.shlunch xx make showcommands bootimage >build.log //通过参数showcommands 将编译的命令显示出来2. 制作编译脚本touch buld_kernel.sh //创建脚本复制第三步编译的build.log中 bin/bash -c 开始的每一段到buld_kernel.sh里在脚本之前加上 source 和原创 2021-06-30 22:50:44 · 788 阅读 · 5 评论 -
Android 编译过程
1. 编译步骤1.1 谷歌给出的官方编译步骤1> source build/envsetup.sh: 加载命令和分支2> lunch: 选择平台(分支)以及平台相关的编译选项3> make: 执行编译1.2 产品公司的编译步骤SOC厂商和产品公司编译 Android 源代码时的步骤与谷歌官方给出的编译步骤是一样的,SOC厂商和产品公司只需要在Android给定的框架下添加自己项目专属的配置文件和配置目录,然后再编译时通过 lunch原创 2021-06-04 22:42:20 · 3929 阅读 · 7 评论 -
Yocto(三)工作中的实战
1. 介绍原创 2021-05-27 23:23:02 · 396 阅读 · 4 评论 -
adb
1. 前言adb的全称是Android Debug Bridge(安卓调试桥),它就是一个命令行窗口工具,用于电脑端与模拟器或者是设备之间的交互。2. adb的组成ADB是一个C/S架构的应用程序,由三部分组成。2.1 运行在pc端的adb client命令行程序”adb”用于从shell或脚本中运行adb命令。首先,“adb”程序尝试定位主机上的ADB服务器,如果找不到ADB服务器,“adb”程序自动启动一个ADB服务器。接下来,当设备的adbd和pc端的adb server建立.原创 2021-05-26 23:16:23 · 557 阅读 · 2 评论 -
Yocto(二)-构建一个qemu版的Linux发行版
1. 发行版的定制流程1.1 开发人员指定体系结构,策略,补丁和配置详细信息;1.2 构建系统从指定位置获取并下载源代码。构建系统支持标准方法,如tarball或源代码存储库系统,如Git;1.3 下载源代码后,构建系统将源提取到应用修补程序的本地工作区,并运行配置和编译软件的常用步骤;1.4 然后,构建系统将软件安装到临时暂存区域,在该区域中,您选择的二进制包格式(DEB,RPM或IPK)用于汇总软件;1.5 在整个构建过程中运行不同的QA和健全性检查;1.原创 2021-05-26 23:08:05 · 794 阅读 · 1 评论 -
Yocto(一)-介绍
1. 背景在嵌入式产品开发中,通常都会定制自己公司的Linux发行版,所谓发行版,即根据自家产品的功能和特性定制bootloader、kernel、rootfs,最后得到这三个的镜像文件。定制Linux发行版是一件耗时耗力、技术含量比较高的一项大工程,对于很多公司来说,是没有这个人力和财力来做这件事的,所以大多数公司会选择现有的开源工具来定制自己家的 Linux 发行版。据我所知,当前比较主流的开源工具有两款,分别是 Buildroot 和 Yocto,它们都是开源的工程,思想也大体原创 2021-05-25 23:34:45 · 7635 阅读 · 0 评论 -
Android 中添加自定义应用程序
0. 以C程序为例1. 创建 C文件在Android源码的任意目录下创建C文件,例如,我在external目录下创建一个文件夹hello_android/,在该文件夹中创建hello_android.c文件,然后编写内容,写一个简单的打印程序,在main函数中打印“hello android”。2.编写 Android.mk文件Android.mk 就是一个 Makefile 文件,负责管理和编译。在external/hello_android/目录下创建Android.mk文件,其内.原创 2021-05-24 23:37:59 · 599 阅读 · 4 评论 -
Android 底层开发概述(四)
1. Android源码目录介绍bionic/ C库build/ 编译系统规则基础开发包配置cts/ 兼容性测试dalvik/ java虚拟机external/ Android引入的第三方模块frameworks/ Android核心框架hardware/ 硬件适配层(HAL)system/ 底层文件系统库,应用和组件device/ 产品目标目录out/ 目标文件目录packages/原创 2021-05-24 23:21:44 · 696 阅读 · 17 评论 -
Android 底层开发概述(三)
1. Android 内核Android SDK通过HAL间接访问Linux驱动(一般的Linux系统都是由应用程序直接访问驱动)。Android 并不能够使用从www.kernel.org下载的Linux内核,必须使用Google提供的网址下载可以供Android使用的Linux内核源代码。2. QT和Android的区别QT只是一个应用开发框架(C++实现);Android包含系统应用层、Java API层(framework)、库、HAL层、kernel。==》Android的集.原创 2021-05-16 15:11:35 · 638 阅读 · 1 评论 -
Android 底层开发概述(二)
1. android底层开发涉及到的知识范围和主要工作内容如下:1. 知识集中在Linux kernel和驱动;2. 工作主要是移植、bug fix;3. 挑战性工作有:性能优化、功耗优化等。2. Android系统层开发涉及到的知识范围和主要工作内容1. 大部分知识集中framework层和相关专业领域,比如telephone、local connectivity、multimedia2. 工作内容:随OS升级而来的移植工作,包括bug fix、一部分是新featur原创 2021-05-16 15:10:30 · 1103 阅读 · 10 评论 -
Android 底层开发概述(一)
1. Android移植Linux 驱动程序工作在内核空间,android的HAL工作在用户空间,有了这两个部分的结合,就可以让庞大的android系统运行在特定的硬件平台上。在具有了特定的硬件平台之后,为了适应不同版本的android系统,其BSP部分代码通常需要重写或者修改,此时设备驱动程序可以重用,硬件抽象层则需要修改。BSP工作和核心应该是原始的硬件底层。例如蓝牙耳机,蓝牙传输文件,蓝牙聊天等程序最终依赖的硬件是蓝牙;照相机、摄像机、条形码识别器等程序都依赖于底层的摄像头;自动转屏,晃动原创 2021-05-16 15:08:41 · 4101 阅读 · 2 评论