最新消息:20210917 已从crifan.com换到crifan.org

【已解决】学习rcsjta的wiki文档搞懂开发逻辑

RCS crifan 373浏览 0评论
折腾:
【未解决】搞懂rcsjta的项目的编译和测试的逻辑如何上手
期间,发现有个wiki。去学习和参考文档,尝试搞清楚如何开发和入手。
Home · android-rcs/rcsjta Wiki
分别去看看:
用于开发的
rcsjta/DevEnv.md at wiki · android-rcs/rcsjta
感觉是我们要的:如何开始开发
不过先继续看看其他的资料和文档:
rcsjta/TestStack.md at wiki · android-rcs/rcsjta
是用来介绍如何测试Stack协议栈的
为了测试RCS服务,需要:
  • IMS平台
  • AS=Application Server=应用程序服务器
    • 用于:
      • IM=Instant Message=即时消息 服务
        • 1对1消息
        • 组聊
        • 文件传输
    • 说明
      • 其他服务 不需要AS
        • Capabilities=能力?
        • 视频/图片/地理位置共享
        • MM 会话
    • 如何选择AS?
      • 目前没有开源的AS可用
        • 不过也可以测试1对1聊天和文件传输
          • 原设备设为 active mode=主动模式
          • 目的设备设为 passive mode=被动模式
rcsjta/Provisioning.md at wiki · android-rcs/rcsjta
Provisioning=供应 补给?
暂时不是很懂。待后续更加熟悉后,再回来看。
rcsjta/CodeSamples.md at wiki · android-rcs/rcsjta
给了一些核心实例代码,演示相关api如何使用。
其中一个例子
Example 4 – Requests a refresh of the capabilities for a remote contact:
中提到了
Here we request a refresh of the capabilities by sending a SIP OPTIONS to the remote via the Telco network. Then the result is received via callback (see next chapter).
-》通过Telco网络,发送SIP OPTIONS到远端设备,用于刷新(了解对方的)能力(支持哪些功能)
典型的几种功能:
  • 聊天=IM=Chat
  • 文件传输=FT=File Transfer
  • Video=视频
  • Image=图片
  • Geoloc=地理位置
  • Extensions=扩展(功能)
另外:
Example 1 – Send a chat message
其中提到
If there is no ongoing session with the remote contact, a new SIP session is created to send the first message, else the existing session is reused. In case of coverage problem, the message is queued and sent later.
-》好像是由于可能存在 coverage 网络信号覆盖?问题,导致此时(手机)网络没信号?
所以把要发送的消息排队,待后续网络有信号了?再继续发送
对于对方消息已读,底层实现是:
Example 4 – Send a read report to the remote contact
的:
Here we send a report to the remote contact saying that the message as been read. Note that the delivery report is sent automatically by the RCS service.
即:
chatApi.markMessageAsRead(msgId);
rcsjta/TestHarness.md at wiki · android-rcs/rcsjta
关于harness的测试
harness的中文翻译:
n. 马具;背带,吊带;甲胄;挽具状带子;降落伞背带;日常工作
v. 治理,利用;套;驾驭;披上甲胄;将(两只动物)拴在一起
A test harness suite has been implemented in order to verify the API signature of the RCS API supported by a device and to avoid device fragmentation.
防止设备碎片
看起来像是:好像是套在一起?治理?的意思
兼容性测试套件  |  Android 开源项目  |  Android Open Source Project
兼容性测试套件 (CTS) 是一个免费的商业级测试套件,可在此处下载。CTS 代表兼容性的“机制”。
此处的自动化测试套件允许:
  • 验证API签名
    • 检测一个设备,是否兼容对应的API(签名)
      • 目前有几种
        • Albatros
        • Blackbird
        • Crane
    • 从贴图的细节看,的确好像是:测试API是否兼容 如果不兼容,会失败,无法通过测试
      • API参考定义 都放在xml中:res/xml/
        • 从别处拷贝的:rcsjta/doclava/reference/current.xml
  • 验证内容提供者content providers
    • 验证可操作性(读/写)、多列?等
关于扩展功能:
rcsjta/Extensions.md at wiki · android-rcs/rcsjta
  • extension=扩展
    • 起源
      • 此开源项目最开始就引入了extension扩展机制,支持部署新的RCS/IMS服务
    • 现状
      • 目前已被GSMA采用放入RCS 5.2中
        • 详见
          • specification中的RCS Extensibility部分
    • 此处
      • Capability API:声明有哪些扩展
      • Multimedia Session API:实现扩展的功能
rcsjta/SecurityModel.md at wiki · android-rcs/rcsjta
除了本身安卓的sign外,还会有tag的sign等过程
包括安装期间和使用期间,都会有权限校验的
用于校验的工具:
  • PorteCle
    • http://portecle.sourceforge.net
      • Portecle is a user friendly GUI application for creating, managing and examining keystores, keys, certificates, certificate requests, certificate revocation lists and more.
  • keytool
    • android JDK中的工具
  • iaritool
    • RCS的工具
    • 源码位置:rcsjta/tools/security/tag-auth-util
      • 最新源码:
        • 没有
        • 只有代码中有些iari相关代码
算了,等用到再说。
或许最新android studio中已无需此工具了?
Certificates · android-rcs/rcsjta Wiki
https://github.com/android-rcs/rcsjta/wiki/Certificates
  • provisioning DM server
  • File Transfer content servers of the OrangeLabs integration platforms
自己实现了https的校验证书
需要安装到安卓设备中
这几个文件都是存在的。
不过注意到了是旧的tag:0.9.0
最新版中,没有data目录了,这几个文件都不存在了。
Provisioning templates · android-rcs/rcsjta Wiki
关于provisioning的模板的
又看到了那几个设备?
Albatros
Blackbird
好像是协议标准的名字:
  • Albatros RCS 5.1 standard
  • Blackbird RCS 5.2 standard
此处是手动的manual provisioning:
Android studio · android-rcs/rcsjta Wiki
终于看到和开发直接相关的文档了 android studio
和之前的
rcsjta/DevEnv.md at wiki · android-rcs/rcsjta
有点类似?有点重复?
只是介绍了如何导入和简单的设置
没说具体如何开发和测试
然后去:
【已解决】参考开发环境文档入手开发RCS的项目rcsjta

转载请注明:在路上 » 【已解决】学习rcsjta的wiki文档搞懂开发逻辑

发表我的评论
取消评论

表情

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址
90 queries in 0.181 seconds, using 23.31MB memory