GNSS CTS & GNSS Start and Location Flow of Android15

目录

  • [1. 本文概述](#1. 本文概述)
  • [2.CTS 测试](#2.CTS 测试)
  • [3.Gnss Flow](#3.Gnss Flow)
    • [3.1 Gnss Start Flow](#3.1 Gnss Start Flow)
    • [3.2 Gnss Location Output Flow](#3.2 Gnss Location Output Flow)

1. 本文概述

本来是为了做Android 14 Gnss CTS 的相关环境的搭建和测试,然后在测试中遇到了一些问题,去寻找CTS源码(/cts/tests/tests/location/src/android/location/cts/GnssTtffTests.java),找测试failed的原因,因此去简单了解了哈Android的源码;另外出于好奇,结合CTS 中测项去捋了捋从Framework层到HIDL启动gnss 和 位置上报的流程。

如下是一些学习和参考的链接:

  1. 肝疼了3万字的Android源码学习指南 : 可简单了解Android 的架构和Android 初始化的流程
  2. 源码在线查看网站 : 貌似这个网站访问不了(code 时间点:20240908)
  3. CTS 环境搭建 : 主要是一些软件的安装如adb,appt2,python,JDK等,然后就是CTS 套件,需要根据自己的测试版本来选择下载; (我是下载的Android 14 R5 Compatibility Test Suite (CTS) - ARM)
  4. Gnss flow 解析参考 :还是有一定的参考价值,但是这个是Andorid 11的,貌似Android 15的flow 有一些变化;当时对照着看,没有看走

贴一张android 启动流程图(来自链接1)

2.CTS 测试

  1. 安装测试环境,参考第一部分的链接3
  2. Gnss CTS test
    • 启动cts : ./android-cts/tools/cts-tradefed
    • 运行 gnss cts: run cts -m CtsGnssLocationTestCase
    • 如果运行失败了,执行 l r (list result)查看结果,将失败的在跑一次 run retry -r sessionid
    • 最后的测试日志&结果可以在android-cts/log or android-cts/result 中查看

3.Gnss Flow

由于访问不了https://cs.android.com/,就不再重新去追一次流程了,贴上之前追好了的图片(有些简陋,将就看,CodeBase 属于Android15)

3.1 Gnss Start Flow

App -> Framework -> JNI -> HIDL -> Drive

3.2 Gnss Location Output Flow

App <- Framework <- JNI <- HIDL <- Drive

需要注意下JNI部分: method_reportLocation = env->GetMethodId(clazz, "reportLocation", "(ZLandroid/location/Location;)V"); 该语句表示会调用Java层(GnssNative.jave)中的reportLocation(bool, Location)函数,注意有两个参数

贴一张JAVA 和JNI 的函数参数签名的对照表(来自链接

相关推荐
iteye_99394 分钟前
让 3 个线程串行的几种方式
java·linux
渡我白衣44 分钟前
Linux操作系统:再谈虚拟地址空间
linux
没有了遇见44 分钟前
Android RecycleView 条目进入和滑出屏幕的渐变阴影效果
android
阿巴~阿巴~1 小时前
Linux 第一个系统程序 - 进度条
linux·服务器·bash
DIY机器人工房1 小时前
代码详细注释:通过stat()和lstat()系统调用获取文件的详细属性信息
linux·嵌入式
站在巨人肩膀上的码农1 小时前
去掉长按遥控器power键后提示关机、飞行模式的弹窗
android·安卓·rk·关机弹窗·power键·长按·飞行模式弹窗
呼啦啦--隔壁老王1 小时前
屏幕旋转流程
android
人生何处不修行2 小时前
实战:Android 15 (API 35) 适配 & 构建踩坑全记录
android
用户2018792831672 小时前
gralde的《依赖契约法典》
android
望获linux2 小时前
【Linux基础知识系列】第四十三篇 - 基础正则表达式与 grep/sed
linux·运维·服务器·开发语言·前端·操作系统·嵌入式软件