《自拍教程39》Python adb一键同步北京时间

2023-10-30 08:50

本文主要是介绍《自拍教程39》Python adb一键同步北京时间,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

研发阶段的Android车机,还不支持从gps或仪表同步互联网时间,
需要手动设置系统时间。 由于任何涉及在线业务,都有时间戳的概念,
如果和远程云端服务器上的时间相差剩余,则服务器端不会返回正常数据。
比如你的车载墨迹天气App,如果你车机时间是:1970-01-01 08:00:00 ,
则肯定无法请求到最新的天气信息,因为你发起请求,服务器直接拒绝,
时间戳相差太大,除非你更新到当前北京时间。


准备阶段
  1. adb shell date -s +时间,可以设置Android终端的系统时间为北京时间。
    比如: adb shell date -s 20200307.165053
  2. 电脑端的时间一般就是北京时间,所以可以直接获取电脑端的时间,然后设置为车机端的时间。
  3. 时间相关的模块,可以用到time模块或者datetime模块,我一般建议用datetime模块,
    因为datetime模块相对功能较为丰富。

Python批处理脚本模式
# coding=utf-8
import os
import datetimenow_time = datetime.datetime.now()
now_time = now_time.strftime("%Y%m%d.%H%M%S")
os.system("adb shell \"date -s %s\"" % now_time)
print("车机时间已经成功同步到了北京时间!")
os.sytem("pause")

更优雅地引用datetime模块

以上datetime模块的引用,
其实不符合日常规范,我们一般会写成:

from datetime import datetimenow_time = datetime.now()

一般来说,在引用区域尽量引用到最底部,即最后一个模块或者最后一个类,
在代码调用区域,只用调用最后一个模块或者最后一个类,
以上from datetime import datetime语句, 第一个datetime是模块名,
第二个datetime是类名,我们调用了datatime的静态方法.now()函数,
这块如果理解不是很清楚,可以查看datetime.py的源代码。


适当地减少变量

now_time = datetime.now()
now_time = now_time.strftime("%Y%m%d.%H%M%S")
其实可以写成一句:
now_time = datetime.now().strftime("%Y%m%d.%H%M%S")
以适当地减少中间变量传递,让代码更加精炼。

Python面向过程函数形式

把代码块打包封装一下, 并调用就可以了。

# coding=utf-8
import os
from datetime import datetimedef set_time():now_time = datetime.now().strftime("%Y%m%d.%H%M%S")os.system("adb shell \"date -s %s\"" % now_time)print("车机时间已经成功同步到了北京时间!")set_time()
os.system("pause")

Python面向对象类的形式

1.以"一切皆可归类"的思想, 先抽象化出一个类来,
类名一般建议用"名词", 所以我们命名为"TimeSetter",
代表时间设置器, 且一般要驼峰式(首字母大写)来规范类的命名。
2. 养成良好的类的初始化(__init__)的习惯, 初始化过程中, 可以pass(什么都不做)
3. TimeSetter 类, 目前只需要一个设置时间的函数(动作功能)就足够了,
函数的命名一般建议用"动词", 所以我们命名为: “set_time” .
4类是一个抽象的事物, 必须实例化成具体的对象后,
才能进行调用, 所以我们实例化并命名成了t_obj, 表明是一个对象.
5.实例化成具体对象后, 对象就可以调用set_time这个函数了.

# coding=utf-8
import os
from datetime import datetimedef TimeSetter():def __init__(self):passdef set_time(self):now_time = datetime.now().strftime("%Y%m%d.%H%M%S")os.system("adb shell \"date -s %s\"" % now_time)print("车机时间已经成功同步到了北京时间!")t_obj = TimeSetter()
t_obj.set_time()
os.system("pause")

代码运行方式

确保Android车机设备通过USB线与电脑连接了,adb设备有效连接,
以上代码的3种实现形式都可以直接运行,
比如保存为set_time.py并放在桌面,
每次需要同步终端时间的时候,双击运行set_time.py.py,
应该可以在Android车机终端屏幕上看到时间已经成功更新成北京时间了。

更多更好的原创文章,请访问官方网站:www.zipython.com
自拍教程(自动化测试Python教程,武散人编著)
原文链接:https://www.zipython.com/#/detail?id=2bae06141b004ab0b55ce9783777a30b
也可关注“武散人”微信订阅号,随时接受文章推送。

这篇关于《自拍教程39》Python adb一键同步北京时间的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/306777

相关文章

基于Python实现一个图片拆分工具

《基于Python实现一个图片拆分工具》这篇文章主要为大家详细介绍了如何基于Python实现一个图片拆分工具,可以根据需要的行数和列数进行拆分,感兴趣的小伙伴可以跟随小编一起学习一下... 简单介绍先自己选择输入的图片,默认是输出到项目文件夹中,可以自己选择其他的文件夹,选择需要拆分的行数和列数,可以通过

Python中反转字符串的常见方法小结

《Python中反转字符串的常见方法小结》在Python中,字符串对象没有内置的反转方法,然而,在实际开发中,我们经常会遇到需要反转字符串的场景,比如处理回文字符串、文本加密等,因此,掌握如何在Pyt... 目录python中反转字符串的方法技术背景实现步骤1. 使用切片2. 使用 reversed() 函

Python中将嵌套列表扁平化的多种实现方法

《Python中将嵌套列表扁平化的多种实现方法》在Python编程中,我们常常会遇到需要将嵌套列表(即列表中包含列表)转换为一个一维的扁平列表的需求,本文将给大家介绍了多种实现这一目标的方法,需要的朋... 目录python中将嵌套列表扁平化的方法技术背景实现步骤1. 使用嵌套列表推导式2. 使用itert

使用Docker构建Python Flask程序的详细教程

《使用Docker构建PythonFlask程序的详细教程》在当今的软件开发领域,容器化技术正变得越来越流行,而Docker无疑是其中的佼佼者,本文我们就来聊聊如何使用Docker构建一个简单的Py... 目录引言一、准备工作二、创建 Flask 应用程序三、创建 dockerfile四、构建 Docker

Python使用vllm处理多模态数据的预处理技巧

《Python使用vllm处理多模态数据的预处理技巧》本文深入探讨了在Python环境下使用vLLM处理多模态数据的预处理技巧,我们将从基础概念出发,详细讲解文本、图像、音频等多模态数据的预处理方法,... 目录1. 背景介绍1.1 目的和范围1.2 预期读者1.3 文档结构概述1.4 术语表1.4.1 核

Python使用pip工具实现包自动更新的多种方法

《Python使用pip工具实现包自动更新的多种方法》本文深入探讨了使用Python的pip工具实现包自动更新的各种方法和技术,我们将从基础概念开始,逐步介绍手动更新方法、自动化脚本编写、结合CI/C... 目录1. 背景介绍1.1 目的和范围1.2 预期读者1.3 文档结构概述1.4 术语表1.4.1 核

Conda与Python venv虚拟环境的区别与使用方法详解

《Conda与Pythonvenv虚拟环境的区别与使用方法详解》随着Python社区的成长,虚拟环境的概念和技术也在不断发展,:本文主要介绍Conda与Pythonvenv虚拟环境的区别与使用... 目录前言一、Conda 与 python venv 的核心区别1. Conda 的特点2. Python v

Python使用python-can实现合并BLF文件

《Python使用python-can实现合并BLF文件》python-can库是Python生态中专注于CAN总线通信与数据处理的强大工具,本文将使用python-can为BLF文件合并提供高效灵活... 目录一、python-can 库:CAN 数据处理的利器二、BLF 文件合并核心代码解析1. 基础合

Python使用OpenCV实现获取视频时长的小工具

《Python使用OpenCV实现获取视频时长的小工具》在处理视频数据时,获取视频的时长是一项常见且基础的需求,本文将详细介绍如何使用Python和OpenCV获取视频时长,并对每一行代码进行深入解析... 目录一、代码实现二、代码解析1. 导入 OpenCV 库2. 定义获取视频时长的函数3. 打开视频文

go中的时间处理过程

《go中的时间处理过程》:本文主要介绍go中的时间处理过程,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录1 获取当前时间2 获取当前时间戳3 获取当前时间的字符串格式4 相互转化4.1 时间戳转时间字符串 (int64 > string)4.2 时间字符串转时间