
Android framework系列
Android framework系列
Android系统攻城狮
《Android系统多媒体进阶实战》一书作者
展开
-
欢迎关注公众号:Android系统攻城狮 原创持续更新中!!!
更多原创,欢迎关注:Android系统攻城狮。原创 2023-04-13 14:32:43 · 636 阅读 · 0 评论 -
Android12之报错:error: use of typeid requires -frtti
Android12之报错:error: use of typeid requires -frtti。原创 2022-09-20 20:50:57 · 1595 阅读 · 0 评论 -
Android12之报错:error: cannot initialize a parameter with an rvalue
Android12之报错:error: cannot initialize a parameter with an rvalue。原创 2022-09-19 17:24:32 · 1304 阅读 · 0 评论 -
Android12之报错fatal error: ‘mediadrm/ICrypto.h‘ file not found
Android12之报错fatal error: 'mediadrm/ICrypto.h' file not found原创 2022-09-18 17:01:12 · 545 阅读 · 0 评论 -
Android12之fatal error: ‘media/MediaMetrics.h‘ file not found
Android12之fatal error: 'media/MediaMetrics.h' file not found原创 2022-09-16 21:41:46 · 612 阅读 · 0 评论 -
Android系统信息获取
Android系统信息获取原创 2022-08-17 22:42:44 · 674 阅读 · 0 评论 -
Android12报错:MediaProvider: Creating a non-default top level directory
E MediaProvider: Creating a non-default top level directory or deleting an existing one is not allowed!原创 2022-08-17 22:12:36 · 2357 阅读 · 0 评论 -
Android12安装报错:Targeting S+ (version 31 and above) requires that an explicit value for android:export
Android12安装报错:Targeting S+ (version 31 and above) requires that an explicit value for android:export原创 2022-08-17 21:31:37 · 1852 阅读 · 1 评论 -
Android12之fatal error: ‘processinfo/ProcessInfoService.h‘ file not found
fatal error: 'processinfo/ProcessInfoService.h' file not found原创 2022-08-15 18:39:10 · 699 阅读 · 0 评论 -
Android12编译:build/make/core/dex_preopt_config.mk:157: error: fopen failed.
Android12编译:build/make/core/dex_preopt_config.mk:157: error: fopen failed.原创 2022-08-10 13:14:38 · 2115 阅读 · 0 评论 -
Android10之INSTALL_FAILED_OLDER_SDK解决方法
Android10之INSTALL_FAILED_OLDER_SDK解决方法原创 2022-07-22 14:03:55 · 8802 阅读 · 0 评论 -
Android10之OMX:ACodec : signalError(omxError 0x80001001, internalError -22)
Android10之OMXACodecsignalError(omxError0x80001001,internalError-22)原创 2022-07-21 17:40:59 · 2826 阅读 · 0 评论 -
Android Vendor Test Suite (VTS) 作用及测试方法
1、前言 - Project Treble Android 目前有一个比较明显的缺点是设备升级到新版本系统所要花费的时间太长(比如从 Android 6.0 升级到 Android 7.0)。通常在由 Google 发布新版本的 AOSP 之后,还需要 SoC 厂商对 HAL 进行升级,以及 OEM 厂商对 HAL 和 Framework 进行升级后,用户才能在设备上收到 OTA 升级包的推送。低端一点的产品甚至在出厂后就不会再进行系统升级了。用户对此抱怨良多。反观竞争对手 iOS 在这方面就做得比较转载 2022-02-11 23:54:38 · 4138 阅读 · 0 评论 -
Android v1、v2、v3签名原理
Android签名机制什么是Android签名了解 HTTPS 通信的同学都知道,在消息通信时,必须至少解决两个问题:一是确保消息来源的真实性,二是确保消息不会被第三方篡改。同理,在安装 apk 时,同样也需要确保 apk 来源的真实性,以及 apk 没有被第三方篡改。为了解决这一问题,Android官方要求开发者对 apk 进行签名,而签名就是对apk进行加密的过程。要了解如何实现签名,需要了解两个基本概念:消息摘要、数字签名和数字证书。消息摘要消息摘要(Message Digest)转载 2022-02-11 23:44:45 · 1012 阅读 · 0 评论 -
应用程序系统签名
1.使用命令行java -jar signapk.jar platform.x509.pem platform.pk8 intput.apk out.apk高版本的还需要配置java.library.pathjava -Djava.library.path=lib64 -jar signapk.jar platform.x509.pem platform.pk8 intput.apk out.apk2. 使用android studio2.1 生成签名文件需要在系统中更加plat转载 2022-01-24 21:29:51 · 424 阅读 · 0 评论 -
Android 系统服务列表
AccountManagerService Android账户服务,提供了对账户、密码、授权的集中管理。 AccessibilityManagerService 辅助管理程序截获所有的用户输入,并根据这些输入给用户一些额外的反馈,起到辅助的效果,View的点击、焦点等事件分发管理服。 ActivityManagerService Android framework框架核心服务,管理整个框架中任务、进程管理, Intent解析等的核心实现,管理四大组建的生命周期。 AlarmManagerServ转载 2022-01-24 20:29:58 · 1145 阅读 · 0 评论 -
init.rc语法与解析
init进程是Android系统中用户空间的第一个进程,进程ID为1,源代码位于system/core/init目录。作为Android系统的第一个进程,Init进程承担这很多重要的初始化任务,一般Init进程的初始化可以分为两部分,前半部分挂载文件系统,初始化属性系统和Klog, selinux的初始化等,后半部分重要通过解析init.rc来初始化系统daemon服务进程,然后以epoll的监控属性文件,系统信号等。init.rc则是init进程启动的配置脚本,这个脚本是用一种叫Android In.转载 2022-01-24 20:08:47 · 2997 阅读 · 1 评论 -
Android之实现 A/B分区更新固件
想要实现 A/B 系统更新的原始设备制造商 (OEM) 和 SoC 供应商必须确保其引导加载程序实现 boot_control HAL,并将正确的参数传递到内核。实现启动控件 HAL支持 A/B 的引导加载程序必须在hardware/libhardware/include/hardware/boot_control.h中实现boot_controlHAL。您可以使用system/extras/bootctl实用程序和system/extras/tests/bootloader/对...翻译 2022-01-05 15:39:33 · 3244 阅读 · 9 评论 -
Android10以上之APEX格式介绍
Android Pony EXpress (APEX) 是 Android 10 中引入的一种容器格式,用于较低级别系统模块的安装流程中。此格式可帮助更新不适用于标准 Android 应用模型的系统组件。一些示例组件包括原生服务和原生库、硬件抽象层 (HAL))、运行时 (ART) 以及类库。“APEX”这一术语也可以指 APEX 文件。背景虽然 Android 支持通过软件包安装程序应用(例如 Google Play 商店应用)更新适用于标准应用模型(如服务、Activity)的模块,但是..翻译 2022-01-05 15:19:46 · 8054 阅读 · 2 评论 -
Android10加入APEX目的
Google在Android中加入APEX的目的?Android碎片化的问题除了好多厂商加了更符合国人土豪味的特性之外,其实还有一个更基础性的问题就是升级太慢。为啥子?不记得之前讲过没有(好像讲过),现在再讲一遍:谷歌是AOSP代码的亲爹。但是有个问题,它老人家把代码搞出来后呢,还不能给厂商使用。因为谷老大没有硬件—给其他玩家用的硬件。在这个生态链里,谷老大之后是华为,高通,MTK这样的芯片厂商。这些芯片厂商有芯片(SOC啊,全套都有,就好像拎包入住的精装修的房子——为毛码农可以拿.转载 2022-01-05 15:12:32 · 2000 阅读 · 0 评论 -
Android报错:FAILED:_nl_intern_locale_data: ?? ‘cnt < (sizeof (_nl_value_type_LC_TIME)
Android编译报错:FAILED: /bin/bash -c "prebuilts/misc/linux-x86/flex/flex-2.5.39 -oout/host/linux-x86/obj/EXECUTABLES/checkpolicy_intermediates/policy_scan.c external/selinux/checkpolicy/policy_scan.l" flex-2.5.39: loadlocale.c:130:nl_intern_locale_data: ?? '原创 2021-08-01 15:13:29 · 676 阅读 · 0 评论 -
Android 8.0 VDEX机制简介
背景Android 8.0在odex的基础上又引入了vdex机制,目的是为了降低dex2oat时间。因为当系统ota后,用户自己安装的应用是不会发生任何变化的,但framework代码已经发生了变化,所以就需要重新对这些应用也做dex2oat,所以如果有vdex的话,就可以省去重新校验apk里dex文件合法性的过程,节省一部分时间,所以本文分析下vdex的实现机制。文件格式 用途...转载 2020-02-28 13:51:58 · 7585 阅读 · 1 评论 -
Android MediaRecorder调用AudioRecord流程
通过一个简单的api来看下调用流程,就看MediaRecorder类的setAudioChannels()设置通道数的方法.废话不多说,直接来看流程.栗子:MediaRecorder mRecorder = new MediaRecorder();mRecorder.setAudioChannels(mChannels);1.frameworks/base/media/java...原创 2019-10-31 20:12:40 · 1086 阅读 · 0 评论 -
无线网卡的Master,Managed,ad-hoc,monitor模式
无线网卡的Master,Managed,ad-hoc,monitor模式一、AP(Access Point) 或称 Master 【ap】 这是默认情况,也是最常用的。适用于路由器作为主AP接Modem然后接入互联网。也就是说在这种配置情况下相当于关闭了WDS功能,我们像平时一样使用该无线设备,将该设备当做一个无线接入点来使用。二、Managed或称Client【转载 2015-12-28 20:40:53 · 2380 阅读 · 0 评论 -
ServiceManager学习框图
原创 2015-12-28 22:09:30 · 688 阅读 · 0 评论 -
查看android源码版本号
# cat build/core/version_defaults.mk原创 2015-12-28 22:20:03 · 895 阅读 · 0 评论 -
Service与Android系统实现(1)-- 应用程序里的Service
Service与Android系统实现(1)-- 应用程序里的Service讲述Android Service(JAVA Service、Native Service等)背后的实现原理,透析基于Binder的RPC以及Linux Binder驱动。Service与Android系统实现(1)-- 应用程序里的ServiceService与Androi转载 2016-01-06 22:09:09 · 686 阅读 · 0 评论 -
制作OTA U盘升级包
# make otapackageota生成目录out/targect/product/generic/obj/PACKAGING/target_files_intermediates/原创 2016-01-08 00:57:25 · 1760 阅读 · 0 评论 -
给android应用程序系统的签名
给test.apk系统签名# java -jar signapk.jar platform.x509.pem platform.pk8 test.apk test-sign.apk原创 2016-03-09 13:54:29 · 561 阅读 · 0 评论 -
PowerManager屏幕休眠断网与距离感应器P-Sensor
PowerManager屏幕休眠断网与距离感应器P-SensorPowerManager.java。1. 应用程序获取PowerManager服务, 我们可以这样书写:[java] view plain copy PowerManager pm = (PowerManager) getSystemService(转载 2016-04-07 16:27:01 · 693 阅读 · 0 评论 -
Android查询 每个进程的权限
有时候我们需要看某个app是否有某个权限,下面我们有两个方法可以确定该应用是否有该权限方法一:比如:我们想看文件浏览器是否有media_rw的权限,我们就先看ps,找到文件浏览器的pid[html] view plain copy 在CODE上查看代码片派生到我的代码片u0_a31 6653 217 702776 60112 SyS_epoll_ b6d21408 S c...转载 2016-04-14 18:11:25 · 1501 阅读 · 0 评论 -
Android Provision (OOBE)
Android Provision (OOBE)Android中很多框架性的设计都已经存在了,但在市场上的发布版本里却因为没有很好的理解Android的设计意图而进行自己的定制,或者自己又做一个冗余的实现。Android中的Provision其实就是类似刚出厂时或者恢复出厂设置之后,一步一步引导用户完成各种设置的Setup Wizard程序。 在Android的原生原创 2015-12-28 21:13:58 · 2788 阅读 · 0 评论 -
理解Android Framework
一、FrameWork整体运行框架说明: 1.Activity的创建会创建PhoneWindow,PhoneWindow会创建DocerView,DocerView会创建View和ViewGroup。2.应用程序在Activity中添加和删除窗口,是通过调用WindowManager类的addView和RemoveView函数达成,具体实现是通过桥接模式实现的Window转载 2016-06-28 16:04:33 · 651 阅读 · 0 评论 -
android 不生成odex文件方法
1、在Android.mk文件中加入下面一句: LOCAL_DEX_PREOPT := false原创 2016-07-11 10:58:07 · 1094 阅读 · 0 评论 -
Android添加开机完成后脚本(boot_completed)
1.完成对应的执行脚本编写,并将该脚本放在编译项目对应的路径下。比如写一个xxx.sh脚本,在脚本中加入自己所以执行的任务对应的命令。并将该脚本放在编译工程对应的路径下,比如:device/ti/jacinto6evm2.在init.rc中创建该服务编写自己要执行的服务,比如:serviceservice_xxx /system/bin/xxx.shuser转载 2016-07-14 22:44:41 · 8076 阅读 · 1 评论 -
Android 程序启动另一个程序
intent = new Intent( ); ComponentName comp = new ComponentName("com.android.mms", "com.android.mms.ui.ConversationList"); intent.setComponent(comp); intent.setAction("android.intent.ac原创 2016-07-09 11:27:30 · 529 阅读 · 0 评论 -
Android之 震动(Vibrator)如何贯通Android系统 (从硬件设计 --> 驱动 --> HAL --> JNI --> Framework --> Application)
在Android 2.3(Gingerbread) 系统的时候,我写过一篇关于“Android 震动马达系统“的文章,当时的Linux内核还是2.6版本的。写那篇文章的目的,是想彻底的了解从硬件到驱动,再到应用的运作流程。完成了之后,文章一直仍在草稿箱里面没发表;今天看到,决定整理一下,重新发表。目的是想和大家分享自己对Android系统的一点认识:以马达为代表,来考究“Android是如何一步步转载 2016-07-09 13:53:18 · 12254 阅读 · 3 评论 -
编译 framework.jar包
编译 framework.jar包今天在项目中遇到个非常头疼的问题,主要是因为自己第一次做Framework,对底层编译什么的完全不了解导致的。情况是这样的,我们需要自己编译Framework运行在Galaxy S上,其他同事都可以正常编译一个大约为4M的framework.jar,直接adb push /system/framework下重启手机即可。转载 2016-03-09 10:42:58 · 5528 阅读 · 4 评论 -
Android系统启动过程
一、开机加电bootloader(汇编语言)进行底层初始化,并加载内核代码,最终跳转到内核的boot程序。二、Linux内核引导 1)kernel核心初始化(内存初始化,打开中断,初始化进程表等等); 2)驱动初始化; 3)启动内核后台(daemons)线程 4)安装根(root)文件系统 5) 启动第一个用户级进程init转载 2016-11-10 00:59:19 · 379 阅读 · 0 评论 -
Android Framework 记录之一
之前的研究太偏向应用层功能实现了,很多原理不了解没有深究,现在研究framework框架层了。记录1、下载源码,目录如下:2、Android系统的层次如下:3、项目目录简单分析如下:4、telphony目录文件描述CellIdentityCdma//描述电信通信标识CellI转载 2016-12-01 17:59:39 · 778 阅读 · 0 评论