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 的函数参数签名的对照表(来自链接

相关推荐
qeen874 小时前
【Linux】操作系统之进程介绍(一)
linux·笔记·学习·进程
邪修king4 小时前
Re:Linux系统篇(二十五):文件系统(一):磁盘硬件底层原理:从物理结构到 CHS/LBA 寻址,搞懂硬盘数据的定位逻辑
java·linux·运维·gpt
小则又沐风a4 小时前
TCP协议讲解-----了解TCP可靠性的基石
linux
恋猫de小郭4 小时前
CPF-Flutter 社区提出折叠场景分栏(平行视界) 方案
android·前端·flutter
刚入门的大一新生5 小时前
Linux-简单设计libc库
linux·c++
事圆则缓5 小时前
Java 常用 API 如何建模 Android 订单业务
android
科小墨5 小时前
【Linux 开发者系列 · 第 1 节】NPM 完全指南:它是什么、为什么重要、在 Linux 上怎么用
linux
Railshiqian5 小时前
android16单手模式代码走读
android·多屏·单手模式
IT北辰5 小时前
Linux运维:sed命令修改配置文件IP
linux
牢姐与蒯5 小时前
Linux文件(三).Ext系列文件系统
linux·运维·服务器