Rebot Framework安装方法详解

本文详细介绍Python 2.7.13版本及其相关组件的安装步骤,包括配置环境变量、安装pip、wxPython等,并提供了RobotFramework及其相关库如RIDE、Selenium2Library的安装教程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1、  先下载安装python_2.7.13150_amd64.msi

安装完成后,cmd进入终端查看,如下图则安装完成。

否则可能是环境变量未添加成功,需要修改环境变量:

选择变量:Path,若没有python路径则在最后添加上2个路径如下图(当然这2个路径要是python的正确路径),用分号隔开,分号结尾。

注意:修改完环境变量后,需要重新打开终端执行python方能生效

     分号为英文状态下的分号

 

2、  查看是否安装pip:在终端中输入pip,如下图则安装完成

否则需要手动安装pip:

cd pip

   Pythonsetup.py install  

 

 

3、  安装执行wxPython2.8-win64-unicode-2.8.12.1-py27.exe

下一步进行安装。

4、  修改pip镜像源方法:http://www.jb51.net/article/98401.htm

如下图操作完成:

5、  然后依次在终端中执行下面命令:

python –m pip install –upgrade pip            //更新pip

pip install robotframework

pip install robotframework-ride

pip install robotframework-selenium2library   // robotframework-selenium2library可以看做RF版的selenium

 

6.安装完成后,在开始菜单中输入ride.py,弹出如下图则安装完成。

7.添加图像快捷键方法:http://blog.sina.com.cn/s/blog_7447a0160102wi51.html

  注意:这一步可装可不装


<think>我们正在处理一个关于Android源码编译的问题,具体是编译framework/base/services模块。用户可能是在进行Android系统开发或定制ROM。 根据Android的编译系统,我们知道Android使用Soong(基于Blueprint和Kati)来替代之前的Makefile系统。编译特定模块通常使用`m`命令(或`make`)加上模块名。 步骤: 1. 初始化构建环境:在源码根目录下执行`source build/envsetup.sh`(或`. build/envsetup.sh`) 2. 选择设备目标:执行`lunch`并选择相应的设备配置。 3. 编译特定模块:使用`m`命令编译模块。但是,我们需要知道模块的确切名称。 对于framework/base/services模块,我们通常编译的是`services`模块,或者更具体地,它可能包含多个模块,但主要的服务模块可能是`services`或`services.core`等。 实际上,在AOSP中,framework/base/services对应的模块名通常是`services`。我们可以通过查看该模块的Android.bp文件来确认模块名。通常,在`framework/base/services`目录下会有Android.bp文件,其中定义了模块。 因此,编译命令可能是: ``` m services ``` 但是,有时模块名可能不同,或者我们可能需要编译整个框架framework)的一部分。为了确保正确,我们可以先尝试查找模块定义。 另外,也可以使用`mm`命令在`framework/base/services`目录下编译当前模块,但需要先进入该目录。 方法二(在模块目录下编译): ``` cd frameworks/base/services mm ``` 注意:`mm`命令是envsetup.sh提供的,用于编译当前目录下的模块。 但是,用户可能希望从根目录编译整个模块而不进入目录,所以推荐使用`m`加上模块名。 根据经验,在AOSP中,`services`模块通常是指`frameworks/base/services`目录下的服务核心模块。 另外,我们也可以使用`m`命令的另一种形式:`m <module_name>`,其中module_name是Android.bp中定义的cc_library、java_library等模块的name属性。 在`frameworks/base/services`目录下,可能有多个子模块,但通常有一个顶层模块来包含这些子模块。我们可以查看该目录下的Android.bp文件。 例如,在Android 10的源码中,`frameworks/base/services`的Android.bp中定义了一个名为“services”的java_library模块: ``` java_library { name: "services", ... } ``` 因此,编译命令为: ``` m services ``` 但是,请注意,这个模块可能依赖于其他模块,所以第一次编译或需要重新编译依赖时,可能需要一些时间。 另外,编译后的输出位置通常在`out/target/product/<device_name>/system/framework/`目录下,生成的文件可能是`services.jar`(对于Java库)或者也可能有其他类型的输出。 如果用户需要将编译后的服务模块推送到设备上,可能需要重新生成系统镜像并刷写,或者使用`adb push`替换设备上的文件(但需要设备有可写的系统分区,并且可能需要重启)。 考虑到用户可能只是修改了服务模块并想测试,也可以使用`adb sync`或者手动推送并重启相关进程(例如`system_server`进程),但这比较复杂,通常重新生成系统镜像并刷入更稳妥。 因此,总结步骤: 1. 进入Android源码根目录。 2. 初始化环境:`source build/envsetup.sh` 3. 选择目标:`lunch`(选择对应的设备配置) 4. 编译模块:`m services` 如果用户需要将模块打包进系统镜像并刷入设备,可以在编译模块后使用`m snod`(重新生成system.img,但不重新编译所有内容)或者直接`make snod`(但注意,`m snod`在较新版本中可能已被替换,实际上可以使用`m`来构建整个系统镜像,但为了快速,可以使用`m systemimage`,但这样会重新生成整个系统镜像。而`m snod`是一个旧命令,表示“system image no dependencies”,即快速重新打包系统镜像而不检查依赖,这要求之前的编译已经完成且没有遗漏。不过,在Soong构建系统中,推荐使用`m`命令来构建,因为它会正确处理依赖关系。因此,为了安全,建议编译模块后,重新生成系统镜像:`m`(不带参数)会构建整个系统,但这样比较慢。或者,如果知道模块是系统的一部分,可以使用`m systemimage`来构建系统镜像。 但是,如果用户只修改了services模块,那么编译`services`模块后,对应的`services.jar`会被更新到`out/target/product/<device>/system/framework/`目录下。然后,可以使用`make snod`(如果可用)来快速重新生成system.img,或者使用`m systemimage`(这会重新生成整个系统镜像,但可能会跳过未改变的部分)。 注意:在较新的AOSP版本中,`make`命令已经被`m`替代,但`m`实际上是一个函数,它调用`build/soong/soong_ui.bash --make-mode`,所以支持相同的参数。 另外,如果用户是在模拟器上测试,可以重新生成系统镜像后启动模拟器。 为了确保正确性,我们也可以参考AOSP官方文档:https://source.android.com/setup/build/building 根据引用[2]中的内容,我们注意不要混合使用支持库和普通类,但这里不涉及,所以可以忽略。 由于用户的问题是如何编译framework/base/services模块,我们给出上述步骤。 生成相关问题: 1. 如何将编译后的services模块推送到Android设备上? 2. 编译services模块时出现错误如何解决? 3. 如何单独调试Android系统中的服务? 4. 在修改了AOSP中的服务代码后,如何快速测试而不重新刷写整个系统? 5. 如何确认编译生成的services.jar已经包含我的修改? 注意:引用[1]和[3]与当前问题无关,因此我们主要关注编译过程。 回答如下:</think>### 如何编译 Android 源码中的 `framework/base/services` 模块 #### 步骤详解 1. **初始化构建环境** 在源码根目录执行: ```bash source build/envsetup.sh ``` 该脚本会加载 `lunch`、`m`、`mm` 等关键命令[^1]。 2. **选择目标设备配置** 执行 `lunch` 并选择设备型号(例如模拟器): ```bash lunch aosp_x86-eng # 以 x86 模拟器为例 ``` 3. **编译特定模块** 使用以下任一命令编译 `services` 模块: ```bash # 方法1:从根目录编译(推荐) m services # 方法2:进入模块目录编译 cd frameworks/base/services mm ``` 4. **输出文件位置** 编译生成的 `.jar` 文件位于: ```bash out/target/product/<device>/system/framework/services.jar ``` #### 关键注意事项 1. **依赖关系** `services` 模块依赖 `core` 和 `framework` 等基础模块。首次编译建议先执行完整编译: ```bash make -j$(nproc) # 完整编译整个系统 ``` 2. **增量编译优化** 使用 `mma` 命令可智能编译当前模块及其依赖: ```bash cd frameworks/base/services mma ``` 3. **常见错误处理** - **类冲突错误**:确保未混用支持库和原生类(参考引用[2])。 - **资源未更新**:删除 `out/` 目录中的中间文件后重试: ```bash rm -rf out/target/common/obj/JAVA_LIBRARIES/services* ``` #### 验证编译结果 将新生成的 `services.jar` 推送到设备: ```bash adb root && adb remount adb push out/target/product/<device>/system/framework/services.jar /system/framework/ adb reboot ``` --- ### 相关问题 1. 如何单独调试 `services` 模块中的特定服务(如 `ActivityManagerService`)? 2. 编译 `services` 模块时出现 `ClassNotFoundException` 错误如何解决? 3. 如何将自定义修改的 `services.jar` 集成到自定义 ROM 中? 4. Android 的 `m`、`mm` 和 `mma` 编译命令有何区别? 5. 如何优化 `services` 模块的编译速度(如使用 `ccache`)? [^1]: Android 官方构建文档:https://source.android.com/setup/build/building [^2]: Android 开发最佳实践:https://developer.android.com/studio/write/lint
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值