am start的总结,-d参数的总结,以及python中传递内容包含中文及特殊字符&的解决方案
2017-09-14 17:39
246 查看
一、am start的内容的整理
主要包含以下内容:am start的常规操作及参数的含义,-d 参数的含义,以及如何在APK中设置参数获取
使用命令如下:adb shell am start -n com.test.myapp/.Activity.TestActivity -d '%s'
在python中具体调用的时候,会用""将内容全部包裹起来,然后再通过%变量去替换'%s'
例如:
cmd3 = "adb shell am start -n com.ganji.testwebview/.Activity.OriginalTestActivity -d '%s'" %url
这里-d就是用来传递给APP的参数,这个-d传递的就是intent的数据,
那么在APK中是如何接收这个-d后面的参数的呢?-d这个参数后面的内容就代表是通过Intent传递的:
具体语句为:urltext=getIntent().getDataString();
关于getIntent的一个具体用法,怎么获取不同类型的数据见下方地址:http://blog.csdn.net/flowingflying/article/details/9364799
具体的am start的一个详解地址如下:
http://gityuan.com/2016/02/27/am-command/
二、python传递数据包含中文的问题以及特殊字符的问题
在通过adb shell将包含了&的url的内容传递给APK的时候,会出现无法跳转的情况,原因是在shell中&是一个特殊字符,因此要通过一个单引号'将&包裹起来,刚开始的时候,在一中的adb命令为:
adb shell am start -n com.test.myapp/.Activity.TestActivity -d %s
后来增加了'%s'
测试之后,发现增加了''单引号之后,url的整个内容都能够完整传递过去,但是这仅限于windows下,在linux下因为&是一个特殊符号,所以通过adb shell am start的方式启动Activity之后将url传递过去,会出现截取url的情况,比如说:https://baidu.com/1243&w3fs&jhre=12,就会截取url到第一个&那里,这样就会导致想要加载的url加载不全,那么得到的结果也不正确,因此针对这样的情况,而且因为存在&很容易出现am start失败的情况,经常Activity就启动失败,但是如果不带这个参数就基本不会失败,因此修改成了:
通过读取sdcrad中的文件,将内容设置成EditText的内容,那么这个sdcard中的内容就需要提前将本次url的内容先写入到文件中,再将这个包含url内容的文件push到sdcard中,通过这种方式修改后,就没有出现am start失败的情况了,而且url的内容能够显示完全,并且通过正确的url请求到正确的信息
备注:在往文件中写url的内容的时候,需要注意打开文件的方式,建议通过'wb'的二进制方式打开,之前通过'w'直接打开,存在中文及特殊字符的情况下,会导致因为编码方式的原因而提示异常导致失败,因此改成二进制的方式进行写文件
![](https://images2017.cnblogs.com/blog/634202/201710/634202-20171017121449224-2030832291.png)
另外,就是url中存在中文的情况也会因为编码的方式导致出现问题,用了一个完全通用的方式进行处理:
import sys
reload(sys)
sys.setdefaultencoding('utf8')
因为使用的是python27,就在添加以上set语句之前先通过下方的语句测试了一下:
print sys.getdefaultencoding(),结果是ascii
加上以上语句之后:结果是utf8
其中utf-8和utf8的区别是什么呢?具体见下方url:http://blog.mimvp.com/2014/12/difference-between-python-utf-8-and-utf8/
主要包含以下内容:am start的常规操作及参数的含义,-d 参数的含义,以及如何在APK中设置参数获取
使用命令如下:adb shell am start -n com.test.myapp/.Activity.TestActivity -d '%s'
在python中具体调用的时候,会用""将内容全部包裹起来,然后再通过%变量去替换'%s'
例如:
cmd3 = "adb shell am start -n com.ganji.testwebview/.Activity.OriginalTestActivity -d '%s'" %url
这里-d就是用来传递给APP的参数,这个-d传递的就是intent的数据,
那么在APK中是如何接收这个-d后面的参数的呢?-d这个参数后面的内容就代表是通过Intent传递的:
具体语句为:urltext=getIntent().getDataString();
关于getIntent的一个具体用法,怎么获取不同类型的数据见下方地址:http://blog.csdn.net/flowingflying/article/details/9364799
具体的am start的一个详解地址如下:
http://gityuan.com/2016/02/27/am-command/
二、python传递数据包含中文的问题以及特殊字符的问题
在通过adb shell将包含了&的url的内容传递给APK的时候,会出现无法跳转的情况,原因是在shell中&是一个特殊字符,因此要通过一个单引号'将&包裹起来,刚开始的时候,在一中的adb命令为:
adb shell am start -n com.test.myapp/.Activity.TestActivity -d %s
后来增加了'%s'
测试之后,发现增加了''单引号之后,url的整个内容都能够完整传递过去,但是这仅限于windows下,在linux下因为&是一个特殊符号,所以通过adb shell am start的方式启动Activity之后将url传递过去,会出现截取url的情况,比如说:https://baidu.com/1243&w3fs&jhre=12,就会截取url到第一个&那里,这样就会导致想要加载的url加载不全,那么得到的结果也不正确,因此针对这样的情况,而且因为存在&很容易出现am start失败的情况,经常Activity就启动失败,但是如果不带这个参数就基本不会失败,因此修改成了:
通过读取sdcrad中的文件,将内容设置成EditText的内容,那么这个sdcard中的内容就需要提前将本次url的内容先写入到文件中,再将这个包含url内容的文件push到sdcard中,通过这种方式修改后,就没有出现am start失败的情况了,而且url的内容能够显示完全,并且通过正确的url请求到正确的信息
备注:在往文件中写url的内容的时候,需要注意打开文件的方式,建议通过'wb'的二进制方式打开,之前通过'w'直接打开,存在中文及特殊字符的情况下,会导致因为编码方式的原因而提示异常导致失败,因此改成二进制的方式进行写文件
![](https://images2017.cnblogs.com/blog/634202/201710/634202-20171017121449224-2030832291.png)
另外,就是url中存在中文的情况也会因为编码的方式导致出现问题,用了一个完全通用的方式进行处理:
import sys
reload(sys)
sys.setdefaultencoding('utf8')
因为使用的是python27,就在添加以上set语句之前先通过下方的语句测试了一下:
print sys.getdefaultencoding(),结果是ascii
加上以上语句之后:结果是utf8
其中utf-8和utf8的区别是什么呢?具体见下方url:http://blog.mimvp.com/2014/12/difference-between-python-utf-8-and-utf8/
相关文章推荐
- python 处理中文遇到的编码问题总结 以及 字符str的编码如何判断
- jsp传递中文参数、空格以及表单内容换行问题解决小结
- 密码中有特殊的字符IOS如何处理 IOS中URL包含中文参数的问题
- android string.xml 添加特殊字符以及android String资源 包含 数学符号等特殊字符 及 参数占位符
- URL传递中文字符,特殊危险字符的解决方案(仅供参考)urldecode、base64_encode
- url 传递参数(特殊字符)解决方法
- jquery AJAX 当参数包含特殊字符如&*#等的时候
- URL传递中文字符,特殊危险字符的解决方案(仅供参考)urldecode、base64_encode
- ajax传递参数含有特殊字符解决方案
- 使用<a>标签调用struts2的action、传递动态参数、以及参数中出现加号等特殊字符的处理方法
- jsp传递中文参数、空格以及表单内容换行问题解决小结
- Linux 下 Oracle 用户的密码包含特殊字符时给 sqlplus 和 imp/exp 传递密码参数的处理
- 判断文件的每一行内容是否包含非中文字符-python
- 密码中有特殊的字符IOS如何处理 IOS中URL包含中文参数的问题
- python函数参数是值传递还是引用传递(以及变量间复制后是否保持一致):取决于对象内容可变不可变
- ajax传递参数含有特殊字符解决方案
- URL传递参数包含特殊字符的处理
- jsp传递中文参数、空格以及表单内容换行问题解决小结
- url 传递参数(特殊字符)解决方法
- jsp传递中文参数、空格以及表单内容换行问题解决小结