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

相关推荐
生产队队长8 分钟前
ThinkPHP:配置Redis并使用
android·数据库·redis
踏雪羽翼11 分钟前
android 差值器的使用
android
致奋斗的我们22 分钟前
HAProxy介绍与编译安装
linux·汇编·数据库·mysql·青少年编程·haproxy·openeurler
waves浪游36 分钟前
Linux基本指令(上)
linux·运维·服务器
Mr-Apple1 小时前
MySQL的Union和OR查询
android·数据库·mysql
yzpyzp1 小时前
如果后台的Long类型的数据返回是null,那么Android客户端的数据bean的kotlin的Long类型的字段接受到数据后是null空指针吗?
android·kotlin
不确定性确定你我1 小时前
`sh` 与 `bash` 的区别详解
linux·bash·运维开发
hmywillstronger2 小时前
【Excel】【VBA】根据内容调整打印区域
android·excel
9毫米的幻想2 小时前
【Linux系统】—— 冯诺依曼体系结构与操作系统初理解
linux·运维·服务器·c语言·c++
coooliang3 小时前
【Android】ViewPager的使用
android