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

相关推荐
浪小满几秒前
linux下使用脚本实现对进程的内存占用自动化监测
linux·运维·自动化·内存占用情况监测
东软吴彦祖14 分钟前
包安装利用 LNMP 实现 phpMyAdmin 的负载均衡并利用Redis实现会话保持nginx
linux·redis·mysql·nginx·缓存·负载均衡
五味香27 分钟前
Java学习,查找List最大最小值
android·java·开发语言·python·学习·golang·kotlin
艾杰Hydra39 分钟前
LInux配置PXE 服务器
linux·运维·服务器
慵懒的猫mi1 小时前
deepin分享-Linux & Windows 双系统时间不一致解决方案
linux·运维·windows·mysql·deepin
阿无@_@1 小时前
2、ceph的安装——方式二ceph-deploy
linux·ceph·centos
PyAIGCMaster2 小时前
ollama部署及实践记录,虚拟环境,pycharm等
linux·ide·pycharm
ouliten2 小时前
最新版pycharm如何配置conda环境
linux·pycharm·conda
AGI学习社3 小时前
2024中国排名前十AI大模型进展、应用案例与发展趋势
linux·服务器·人工智能·华为·llama
H.203 小时前
centos7执行yum操作时报错Could not retrieve mirrorlist http://mirrorlist.centos.org解决
linux·centos