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" ...
随机推荐
- 深入理解注解驱动配置与XML配置的融合与区别
摘要:本文旨在深入探讨Spring框架的注解驱动配置与XML配置,揭示两者之间的相似性与差异. 本文分享自华为云社区<Spring高手之路2--深入理解注解驱动配置与XML配置的融合与区别> ...
- OpenSSL 是什么?
OpenSSL 是什么? OpenSSL 是开源的程序套件,该套件由三部分组成: libcrypto:具有通用功能的加密库,里面包含众多加密算法 libssl:实现 SSL/TLS 功能 openss ...
- 第三届陕西省大学生网络安全技能部分WP
web easyrce 题目代码如下: <?php error_reporting(0); highlight_file(__FILE__); if (!empty($_GET['PK'])){ ...
- 声音克隆,精致细腻,人工智能AI打造国师“一镜到底”鬼畜视频,基于PaddleSpeech(Python3.10)
电影<满江红>上映之后,国师的一段采访视频火了,被无数段子手恶搞做成鬼畜视频,诚然,国师的这段采访文本相当经典,他生动地描述了一个牛逼吹完,大家都信了,结果发现自己没办法完成最后放弃,随后 ...
- 快速上手kettle(四)壶中可以倒出些啥?
目录 前言 一 .kettle 这壶里能倒出啥? 二 .Access输出 2.1 Access输出设置 2.2 启动转换,查看输出 三 .Excel输出 3.1 选择excel扩展名 3.2 1 将表 ...
- Grafana 系列-GaC-2-Grafana Terraform Provider 基础
系列文章 Grafana 系列文章 Terraform 系列文章 概述 前文最后总结了我的工具选型: Grafana Terraform provider Jsonnet 我们今天先简单介绍 Graf ...
- 一种实现Spring动态数据源切换的方法
1 目标 不在现有查询代码逻辑上做任何改动,实现dao维度的数据源切换(即表维度) 2 使用场景 节约bdp的集群资源.接入新的宽表时,通常uat验证后就会停止集群释放资源,在对应的查询服务器uat环 ...
- 10. Mybatis的缓存
1. Mybatis 的一级缓存 一级缓存是 SqlSession 级别的,通过同一个 SqlSession 查询的数据会被缓存,下次查询相同的数据,就会从缓存中直接获取,不会从数据库重新访问 , ...
- Vue3从入门到精通(三)
vue3插槽Slots 在 Vue3 中,插槽(Slots)的使用方式与 Vue2 中基本相同,但有一些细微的差异.以下是在 Vue3 中使用插槽的示例: // ChildComponent.vue ...
- 关于 Task 简单梳理
〇.前言 Task 是微软在 .Net 4.0 时代推出来的,也是微软极力推荐的一种多线程的处理方式. 在 Task 之前有一个高效多线程操作累 ThreadPool,虽然线程池相对于 Thread, ...