- 博客(92)
- 资源 (1)
- 收藏
- 关注
原创 Android automotive车载开发(5)-----系统架构
硬件抽象层主要是提供了一个native服务android.hardware.automotive.vehicle@2.0-service,负责处理车辆相关的业务。系统框架层提供了多个模块,来对Android Automotive 进行支持,最重要的有一个服务CarService (com.android.car)。CarService中CarService只作为服务的入口,具体的业务逻辑都在内部的子服务中处理,CarService的子服务如下。它由一个服务启动,而里面又控制着数十个子模块服务。
2022-11-03 18:08:38
1998
2
原创 Android automotive车载开发(4)-----Volume management音量管理
`AAOS `在`CarAudioService` 内拥有自己的音量管理。该操作系统使用固定音量,并且音量应该通过硬件放大器(而不是软件)在` HAL `之下应用。此外,它还会将输出设备划分到不同的音量组,以便对与相应音量组关联的所有设备应用相同的增益。
2022-10-31 11:07:46
2013
原创 Android automotive车载开发(3)-----Audio routing音频路由
虽然应用程序的基于 UID 的路由允许对每个应用程序的音频路由进行精细控制,但它还要求在应用程序实际请求音频焦点和播放音频之前定义每个应用程序的音频路由。有了这个信号,所有音频区域的音频焦点管理和路由都会自动配置。这意味着如果定义了乘员区域到汽车音频区域的映射,则基于 UID 的路由将被禁用,并且尝试调用。在新的配置文件中,定义了一个区域列表。每个区域都有一个或多个卷组及其关联的设备,并且每个设备都有应该在该区域内路由的上下文。通常,占用区域和音频区域之间的任何映射都可以配置,但映射必须是一对一的。
2022-10-28 10:55:06
2774
原创 Android automotive车载开发(2)-----Audio Focus音频焦点
因此,在传入的焦点请求被授予焦点的同时,现有的焦点持有者会失去焦点。在这个例子中,如果拨号器正为某个通话持有音频焦点,而另一个应用要请求焦点来播放音乐,则音乐应用发出的请求会收到 AUDIOFOCUS_REQUEST_FAILED 响应。因此,对一个音频区的请求不会考虑其他音频区中的焦点持有者,也不会导致其他音频区中的焦点持有者失去焦点。因此,无论 HAL 是否被授予音频焦点,都应播放紧急声音和对保障安全至关重要的声音,即使 HAL 失去音频焦点,也应继续在适当的情况下播放这些声音。
2022-10-27 11:22:18
1869
原创 Android automotive车载开发(1)-----Automotive audio
如果外部声音流是应与 Android 正在生成的声音环境交互的媒体源(例如,当外部调谐器处于开启状态时,停止 MP3 播放),则那些外部声音流应由 Android 应用表示。系统实现可以针对所有 Android 声音使用一个总线端口,在这种情况下,Android 会将所有声音混合在一起,并将混音结果作为一个声音流进行传输。系统实现者必须提供一个混音器,用于接受来自 Android 的一个或多个声音输入流,然后以合适的方式将这些声音流与车辆所需的外部声源组合起来。每个音频区的焦点也是单独维护的。
2022-10-27 11:03:40
2662
原创 Framework定制系列(十)-----SystemUI定制状态栏statusbar和导航栏navigationbar教程
Framework定制系列(十)-----SystemUI定制状态栏statusbar和导航栏navigationbar教程
2022-07-21 10:10:25
998
原创 软件架构与设计(十)-----架构技术
创建应用程序的概述,这使得架构更加可触摸,将其与现实世界的约束和判断相关联。它包括以下活动-识别应用程序类型识别应用程序类型,无论是移动应用程序,富客户端,富互联网应用程序,服务,Web应用程序,还是这些类型的某些组合。识别部署约束选择适当的部署拓扑,并解决应用程序和目标基础架构之间的冲突。识别重要的建筑设计风格识别重要的架构设计风格,如客户端/服务器,分层,消息总线,域驱动设计等,以通过提供常见问题的解决方案来改进分区和促进设计重用。应用程序通常会使用样式的组合。确定相关技术。...
2022-07-15 17:08:17
495
原创 软件架构与设计(九)-----基于组件的架构
组件是一种模块化,便携式,可更换和可重复使用的定义明确的功能集,其封装其实现并将其作为更高级别的界面导出。组件是一个软件对象,旨在与其他组件交互,封装某些功能或一组功能。它具有明确定义的界面,并符合架构中所有组件通用的推荐行为。软件组件可以被定义为具有合同规定的接口和显式上下文相关性的组合单元。也就是说,软件组件可以独立部署,并由第三方组成。...
2022-07-15 17:01:09
1497
原创 软件架构与设计(八)-----分布式架构
有几种支持分布式架构的技术框架,包括.NET,J2EE,CORBA,.NETWeb服务,AXISJavaWeb服务和GlobusGrid服务。服务是商业功能的组成部分,其定义明确,独立,独立,发布,并可通过标准编程接口使用。服务之间的连接由通用和通用的面向消息的协议(如SOAPWeb服务协议)进行,可以轻松地在服务器之间传递请求和响应。面向服务的架构是一种客户端/服务器设计,支持业务驱动的IT方法,其中应用程序由软件服务和软件服务使用者(也称为客户端或服务请求者)组成。...
2022-07-15 16:49:45
875
1
原创 软件架构与设计(七)-----互动架构
抽象模块看起来像MVC的模型模块,控制模块就像MVC的控制器模块,但它们的控制和组织流程不同。控制器视图和模型之间的连接可以按照订阅通知的模式(如上图所示)设计,控制器视图订阅模型和模型会通知控制器视图的任何更改。MVC将给定的软件应用程序分解成三个互连的部分,这些部分有助于将信息的内部表示与向用户呈现或接受的信息进行分离。相同信息的多个视图是可能的,例如用于管理的条形图和会计师的表格视图。MVC应用程序适用于模块之间明确划分的应用程序,以便可以分配不同的专业人员同时处理此类应用程序的不同方面。...
2022-07-15 16:39:32
702
原创 软件架构与设计(六)-----层次结构体
下层提供更具体的功能,例如I/O服务,事务,调度,安全服务等。在这种架构中,从器件为主器件提供重复的服务,并且主器件通过某种选择策略在从器件之间选择特定的结果。在虚拟机架构中,主器件使用来自从器件的“相同”子服务器,并执行诸如拆分工作,调用从站和组合结果等功能。每个层向其上面的层提供服务,并且用作下面的层的客户端,即,请求层Ii通过层i的接口调用由层i提供的服务。其次,它包含全球共享数据,所以它也是脆弱的。在这种方法中,系统被分解成层次结构中的多个较高层和较低层,每个层在系统中都有其自己的责任。...
2022-07-15 16:31:40
1555
原创 软件架构与设计(五)-----以数据为中心的架构
如果事务输入流中的事务类型触发选择要执行的进程,则传统的数据库或存储库架构或被动存储库。在BlackboardArchitectureStyle中,数据存储是活动的,其客户端是被动的。在存储库架构样式中,数据存储是被动的,数据存储的客户端(软件组件或代理)是活动的,它控制逻辑流程。如果中央数据结构的当前状态是选择要执行的进程的主要触发器,则存储库可以是黑板,并且该共享数据源是活动代理。与传统数据库系统的主要区别在于,黑板架构中的计算元素的调用是由黑板的当前状态触发的,而不是外部输入。...
2022-07-15 16:26:26
855
原创 软件架构与设计(四)-----数据流架构
在数据流架构中,整个软件系统被视为连续的一组或一组输入数据的变换,数据和操作彼此独立。在这种方法中,数据进入系统,然后一次一个地流过模块,直到它们被分配给某个最终目的地(输出或数据存储)。...
2022-07-15 16:20:16
1560
原创 软件架构与设计(三)-----面向对象范式
OO范式是开发任何软件的重要方法。大多数架构样式或模式,如管道和过滤器,数据存储库和基于组件的可以通过使用此范例来实现。面向对象系统的基本概念和术语-
2022-07-15 16:11:17
429
原创 软件架构与设计(二)-----架构模型
用例视图具有特殊的意义,因为它详细介绍了系统的高层次需求,而其他意见的细节-如何将这些要求得以实现。它是一种用于架构描述的表达形式,并提供分解组件,组合组件和定义组件接口的功能。架构描述语言是一种正式的规范语言,它描述了诸如进程,线程,数据和子程序之类的软件特征以及诸如处理器,设备,总线和存储器之类的硬件组件。它是一种用于研究和记录软件架构设计的架构验证方法,涵盖了所有利益相关者的软件架构的所有方面。一个模型是一个完整的,基本的和简化的软件体系结构描述,由特定的角度或观点的多个视图组成。.........
2022-07-15 15:52:44
1340
1
原创 软件架构与设计(一)-----关键原则
事实上,许多软件项目和产品被认为是不成功的,因为它们并没有真正解决有效的业务问题或具有可识别的投资回报率(ROI)。可以通过使用设计结构矩阵(DSM)来模拟分解,该矩阵显示了设计元素之间的依赖关系,而不指定元素的粒度。与安全,通信或系统服务(如日志记录,分析和配置)相关的代码应该在单独的组件中进行抽象。这将提供高内聚力和低耦合度。对于转换,采取现有设计并应用设计运算符,如分解,复制,压缩,抽象和资源共享。描述配置组件集合(具有明确定义的接口,可重用和可替换的模块)和连接器(模块之间的通信链路)的特定方式。.
2022-07-15 15:31:50
249
原创 Framework定制系列(九)-----Android系统监听应用进程状态根据进程pid获取应用包名
Framework定制系列(九)-----Android系统监听应用进程状态根据进程pid获取应用包名
2022-07-12 15:58:24
1318
原创 Framework定制系列(八)-----android系统BlueTooth相关设置及状态监听
Framework定制系列(八)-----android系统BlueTooth相关设置及状态监听
2022-07-05 16:47:25
634
原创 Framework定制系列(七)-----android系统wifi相关设置及状态监听
Framework定制系列(七)-----android系统wifi相关设置及状态监听
2022-07-05 16:42:04
464
原创 Framework定制系列(六)-----屏蔽FallbackHome手机启动中弹窗直接进入Launcher
问题场景:Android系统定制中去除锁屏KeyGuard服务之后,在系统开机进入Launcher之前,会有手机正在启动中弹窗,这部分主要涉及Settings中的FallbackHome,解决方案如下:代码路径: framework/services/core/java/com/android/server/wm/WindowManagerService.java2. 屏蔽掉FallbackHome代码路径:framework/services/core/java/com/android/server/
2022-07-04 15:35:51
1993
原创 Framework定制系列(五)-----Android 10.0/11.0屏蔽系统所有通知
Framework定制系列(五)-----Android 10.0/11.0屏蔽系统所有通知
2022-07-04 11:12:59
853
原创 Framework定制系列(四)-----Android系统关闭锁屏service出现的FallbackHome问题解决方案
Android系统关闭锁屏service出现的FallbackHome问题解决方案
2022-07-02 20:11:53
1590
原创 Framework定制系列(三)-----Android系统修改ntpServer服务器地址自动更新时间
Android系统修改ntpServer服务器地址自动更新时间
2022-07-02 19:53:54
2347
原创 Framework定制系列(一)-----SystemUI NavigationBar导航栏上滑返回Launcher
SystemUI NavigationBar导航栏上滑返回Launcher
2022-07-02 19:10:01
450
原创 samba服务器搭建指南
一:samba搭建和配置安装samba软件sudo apt-get install system-config-samba -y重新启动samba服务sudo /etc/init.d/samba restart或者sudo /etc/init.d/smbd restart && sudo /etc/init.d/nmbd restart配置相关共享目录(这里配置work目录)sudo vim /etc/samba/smb.conf[work]comment =
2021-06-25 17:42:00
275
原创 monkey压力测试
一:monkey压力测试列出相关应用的包名称adb shell pm list packages2.monkey测试指令如下, 以settings为例:adb shell monkey -p com.android.settings -s 500 --ignore-crashes --ignore-timeouts --monitor-native-crashes -v -v 10000 adb shell monkey -p com.android.settings -s 500 -
2021-02-04 16:12:13
228
原创 如何通过adb打开和关闭飞行模式
一:如何通过adb打开和关闭飞行模式打开飞行模式脚本@echo offsadb rootsadb wait-for-devicesadb remountsadb wait-for-devicesadb shell settings put global airplane_mode_on 1 sadb shell am broadcast -a android.intent.action.AIRPLANE_MODE --ez state truepause关闭飞行模式脚
2021-01-05 16:53:04
2524
原创 如何解决ubuntu adb devices 没有设备或者没有权限
一:ubuntu adb devices 没有设备或者没有权限1:lsusb命令找到对应设备信息,如Bus 001 Device 003:ID 2c7c:50012:sudo在/etc/udev/rules.d/下新建文件51-android.rules并在文件中增加SUBSYSTEM=="usb",ATTR{idVendor}=="2c7c",MODE="0666",GROUP="Xxxx"3:修改权限,重启udevsudo chmod a+x /etc/udev/rules.d/51-and
2020-11-17 15:22:58
1639
原创 如何压缩与解压缩ramdisk.img
一:ramdisk压缩与解压缩1)ramdisk解压缩mv ramdisk.img ramdisk.img.gzgunzip ramdisk.img.gzcpio -i -F ramdisk.img2)ramdisk压缩(把解压目录中的ramdisk.img删掉)find .| cpio -ov -H newc | gzip> …/ramdisk.img
2020-11-17 15:13:16
579
原创 Camera连拍自动化测试shell脚本
一:Camera连拍自动化测试shell脚本touch_X=360touch_X_2=370touch_Y=1111touch_Y_2=1120屏幕的坐标位置根据实际情况修改,开发者选项中打开指针位置可获取屏幕焦点坐标。sleepTime=5.5 代表休眠时间max_click_count=5000 最大点击次数以上根据实际情况调整即可!#start camera am start com.android.camera2/com.android.camera.CameraLauncher
2020-11-17 15:08:33
1075
原创 samba服务器如何配置
一:samba服务器配置安装sambasudo apt-get install system-config-samba -y修改smb.confsudo vi /etc/samba/smb.conf[work] comment = share for liujiaxing path = /home/liujiaxing/project public = yes writeable = yes available = yes browseable = yes
2020-06-25 15:11:46
1001
原创 如何搭建openGrok代码服务器
一:搭建openGork代码服务器更新数据源sudo apt-get update安装jdk1.8sudo apt-get install openjdk-8-jdk-headless 安装ctagssudo apt-get install exuberant-ctags安装tomcat8wget http://mirrors.tuna.tsinghua.edu.cn/apache...
2019-12-03 15:20:36
519
原创 Android Stdio如何导入项目源码
一:AndroidStdio如何导入项目源码//构建编译环境. build/envsetup.shlunch//编译idegen执行idegen.sh脚本,生成相关的ipr文件, 导入AS即可make idegen && development/tools/idegen/idegen.sh...
2019-11-18 10:48:39
925
原创 AS如何不区分大小写去进行智能提示
一:AS如何不区分大小写去进行智能提示第一次安装as的时候,智能提示会区分大小写,对我们快速开发十分不利,把箭头出设置为none就可以无论大小写都能提示...
2019-11-18 10:44:37
945
原创 编译Android7.1源码出现OOM错误解决方法
一:编译Android7.1源码出现OOM错误解决方法在Android7.1编译过程中出现如下错误:Starting build with ninjaninja: Entering directory .' [ 0% 8/30301] Ensure Jack server is installed and startedJack server already installed in "/ho...
2019-11-18 10:04:55
670
原创 VirturalBox解决kernel driver问题
一:VirturalBox解决kernel driver问题脚本sudo apt-get install ppa-purgesudo ppa-purge ppa:ubuntu-toolchain-r/testsudo add-apt-repository ppa:ubuntu-toolchain-r/testsudo apt-get updatesudo apt-get install ...
2019-11-18 09:55:20
330
原创 Android源码分析(十八)----如何判断飞行模式是否开启
一:如何判断飞行模式是否开启源码地址:frameworks\base\services\core\java\com\android\server\policy\GlobalActions.java主要查询字段Settings.Global.AIRPLANE_MODE_ONprivate void onAirplaneModeChanged() { // Let the service...
2019-11-15 11:48:09
541
原创 Android基础知识(七)-----Launcher上是否加载apk图标
一:Launcher上是否加载apk图标主要修改如下:<category android:name="android.intent.category.DEFAULT" /><!--不显示--><category android:name="android.intent.category.LAUNCHER" /><!--显示--> <...
2019-11-15 11:39:35
447
原创 Android基础知识(六)-----如何实现SimpleCursorAdapter ListView倒序显示
一:ListView倒序此文章主要是解决SimpleCursorAdapter 显示数据库的数据时,LIstView倒序排列问题,数据来源是cursor,可通过sql语句解决此类问题。在通过数据库获取cursor时,查询所有数据,即Cursor cursor = db.rawQuery("select * from sos_record",null); //这是查询所有数据,默认以ID为顺序...
2019-11-13 15:29:19
442
Android apk系统签名工具
2022-07-02
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人