OPPO主题组件开发 - 调试与预览
本篇作为 OPPO主题组件调试与预览 文档的补充,因为它真的很简单而且太老,一些命令已发生变化
1. 调试前准备
1. PC 端下载 adb命令工具
- 下载 https://adbdownload.com/,或从其他地方下载也可
- 解压,放在你想放的文件夹下
- 配置环境变量
右键我的电脑/此电脑选择属性,在弹出的面板里选择高级系统设置

在弹出的面板里,选择环境变量,在弹出的面板里找到Path,点击编辑

在弹出的面板里,选择新建,在新建的空白行内填入,你解压后的文件夹地址,比我的是D:\Tools\windows\platform-tools

最后一步步确定,关闭所有面板 - 测试
打开命令行工具,输入adb,出现如下,则表示安装成功

2. 手机端安装 多彩引擎
下载地址参见 https://open.oppomobile.com/new/developmentDoc/info?id=12221,下载后安装到手机上
3. 手机连接电脑
- 手机找到
开发者选项
没这个选项的话,请打开手机设置->关于本机->版本信息,然后持续点击版本号,直至出现类似您现在已处于开发者模式的提示即可。然后在设置->其他设置下即可找到开发者选项

- 打开开发者选项里的
USB调试
出现提示,请点击确定

- 手机通过
USB数据线连接电脑
连接无反应的,请检查接口或换线
连接后,选择传输文件

弹出框提示允许USB调试吗,请选择允许

经历以上步骤,则准备工作已做好
2. adb 调试和预览
打开
cmd命令工具,开始进行调试
1. 测试是否连接正常
输入 adb devices,出现下列情况,则说明连接正常,如果没有 device 和它前面的id,则说明连接不成功
PS C:\Users\Administrator> adb devices
List of devices attached
8d58ec40 device
2. 创建手机端的 widget 文件夹
输入 adb shell mkdir /sdcard/Android/data/com.heytap.colorfulengine/files/widget,因为我已创建过,所以它提示已存在
关于命令中间 com.heytap.colorfulengine 这个地址,可以打开 多彩引擎 软件,最上面有提示
PS C:\Users\Administrator> adb shell mkdir /sdcard/Android/data/com.heytap.colorfulengine/files/widget
mkdir: '/sdcard/Android/data/com.heytap.colorfulengine/files/widget': File exists
3. 将创建的组件包发送到手机
如果你还没有创建自己的组件,可以先下载官方示例里 模板包,下载后重新命名简短点,然后 cd 到当前目录(或在当前目录右键打开 cmd 命令)执行发送命令 adb push xxx.zip /sdcard/Android/data/com.heytap.colorfulengine/files/widget。xxx.zip 请修改为具体你命名的文件名。
PS D:\workspace\2023\oppoTheme\oppowidget> adb push system.zip /sdcard/Android/data/com.heytap.colorfulengine/files/widget
system.zip: 1 file pushed, 0 skipped. 131.9 MB/s (240171 bytes in 0.002s)
出现以上提示,则表明发送成功
4. 手机端打开 多彩引擎 软件
点击新出现的压缩包,出现组件预览,然后 添加到桌面 即可

开发者进阶
1. 其他常用的 adb 命令
安装本地APK软件
adb install xxx.apk
删除手机上的组件文件
adb shell rm /sdcard/Android/data/com.heytap.colorfulengine/files/widget/xxx.zip
卸载手机软件请参考其他博文 使用adb安装或卸载卸载手机系统应用
2. 连接OPPO远程真机
请先查看 OPPO远程真机的官方介绍

前2步进行完毕后,执行以下命令
# 执行云真机连接命令,输入账号和密码,连接可用端口,比如23008,提示`failed to authenticate to 127.0.0.1:23008`不用理会是正常的
adb connect 127.0.0.1:14243
# 安装测试软件
adb install ColorfulEngine#Widget_13.0.62-Test-20230829-315979231.apk
# 安装完成后,其余操作和本地连接手机相同,推送组件然后查看
adb push xxx.zip /sdcard/Android/data/com.heytap.colorfulengine/files/widget
# 断开连接
adb disconnect 127.0.0.1:14243
3. PC端集成 组件打包/删除/压缩 命令
请查看我的上一篇博文 Cygwin,在windows中使用linux命令
安装 Cygwin 后,整个调试流程示例如下:
- 如果旧压缩包,先删除
rm .\xxx.zip
- 压缩
zip -r xxx.zip .\system\
- 推送压缩包到手机
adb push xxx.zip /sdcard/Android/data/com.heytap.colorfulengine/files/widget
OPPO主题组件开发 - 调试与预览的更多相关文章
- 混合开发使用Chrome Inspect调试WebView预览手机界面和定位元素
使用Chrome Inspect调试混合应用可以帮助我们排查问题.例如定位元素,快速修改CSS样式并实时查看效果.其实微信开发也是一种混合开发模式,微信可以看做一个原生的Android App搭配了一 ...
- Qt之股票组件-股票检索--支持预览框、鼠标、键盘操作
目录 一.感慨一下 二.效果展示 三.搜索编辑框 1.编辑框 2.预览框 四.相关文章 原文链接:Qt之股票组件-股票检索--支持预览框.鼠标.键盘操作 一.感慨一下 之前做过一款炒股软件,个人觉着是 ...
- 解决Android界面布局添加EditText组件后界面无法预览
错误报告: Exception raised during rendering: java.lang.System.arraycopy([CI[CII)V Exception details are ...
- 微信小程序开发之图片预览
实现图片的展示和大图预览 使用wx.previewImage(OBJECT)来实现 OBJECT参数说明: 参数 类型 必填 说明 current String 否 当前显示图片的链接,不填则默认为 ...
- 玩转Android Camera开发(一):Surfaceview预览Camera,基础拍照功能完整demo
杂家前文是在2012年的除夕之夜仓促完成,后来很多人指出了一些问题,琐事缠身一直没有进行升级.后来随着我自己的使用,越来越发现不出个升级版的demo是不行了.有时候就连我自己用这个demo测一些性能. ...
- Android Camera开发:使用GLSurfaceView预览Camera 基础拍照
GLSurfaceView是OpenGL中的一个类,也是可以预览Camera的,而且在预览Camera上有其独到之处.独到之处在哪?当使用Surfaceview无能为力.痛不欲生时就只有使用GLSur ...
- FineReport——JS二次开发(分页预览)
BS访问某个cpt模板,报表servlet将会将cpt文件解析成对应的html,报表内容最终转换为一个table,位于id=content-container的div中. 在模板和html页面中,他们 ...
- 阶段5 3.微服务项目【学成在线】_day09 课程预览 Eureka Feign_13-课程预览功能开发-CMS页面预览接口测试
5.2 CMS页面预览测试 CMS已经提供了页面预览功能,课程预览功能要使用CMS页面预览接口实现,下边通过cms页面预览接口测试课 程预览的效果. 1.向cms_page表插入一条页面记录或者从cm ...
- Android 开发 Camera2开发_3_处理预览和拍照偏暗问题
通过调整曝光解决 参考:https://stackoverflow.com/questions/28429071/camera-preview-is-too-dark-in-low-light-and ...
- vue组件利用formdata图片预览以及上传《转载》
转载修改 在项目中直接新建一个单文件页,复制一下代码即可 upload组件: <template> <div class="vue-uploader" ...
随机推荐
- 【技术积累】Git中的基础知识【一】
Git是什么?有什么特点? Git是一个分布式版本控制系统,常用于软件开发中的源代码管理.它最初由Linux开发者Linus Torvalds创建,旨在管理Linux内核的开发. Git具有以下特点: ...
- AI隐私保护中的常见隐私隐私问题与解决方案
目录 题目:<AI隐私保护中的常见隐私问题与解决方案> 引言 随着人工智能技术的快速发展,AI隐私保护也成为了一个备受关注的问题.由于AI技术的应用范围越来越广泛,例如语音识别.图像识别. ...
- [solved] login to server failed: EOF
问题 frp 报错:login to server failed: EOF 解决方案 客户端配置 common 下 添加 tls_enable = true [common] tls_enable = ...
- MySQL-this is incompatible with sql_mode=only_full_group_by 错误解决
MySQL-this is incompatible with sql_mode=only_full_group_by 错误解决 编辑配置文件 Linux 中 :my.cnf Windows中 : m ...
- 微信小程序 - 视图与逻辑
[黑马程序员前端微信小程序开发教程,微信小程序从基础到发布全流程_企业级商城实战(含uni-app项目多端部署)] https://www.bilibili.com/video/BV1834y1676 ...
- STM32软件I2C驱动MPU6050
STM32软件I2C驱动MPU6050 STM32F103C8T6基于Keil MDK标准库 硬件接线 这里没有什么复杂的地方,采用MPU6050的现成模块.模块的SCL接B10,SDA接B11,这里 ...
- C#获取文件MD5
什么是MD5? MD5 Message-Digest Algorithm,MD5信息摘要算法.一种被广泛使用的密码散列函数,可以产生出一个128位(16字节)的散列值(hash value),用于 ...
- ElementUi使用el-tooltip实现超出部分显示省略号
效果前: 效果后: 创建myTooltio.vue组件 <template> <div class="tooltip-container"> <el- ...
- Oracle分区表设置详解
Oracle分区表详解 Oracle建议单表超过2G就需要进行分表,一万数据大概3MB,单表最多分区为1024*1024-1个分区,我感觉够我们使用了哈 废话不多说,上示例,Oracle分表具体sql ...
- Truncate 和 Delete 的区别与选择
1)事务和日志 delete 语句执行删除的过程是每次从表中删除一行,并且同时将该行的删除操作作为事务记录在日志中保存以便进行回滚操作. truncate table 则 一次性地从表中删除所有 ...