
主要方法是:调用 adb install + apk的绝对路径名;
如果有多部手机,调用adb -s + 手机编号(如果不知道怎么获取,请继续回复)+ install + apk绝对路径;
在代码里执行:RuntimegetRuntime()exec(
"adb -s " + devName + " install " + apkAddress);
private void installApkToMobile(String devName, String apkAddress)
{
Process process = null;
String buff = "";
try
{
process = RuntimegetRuntime()exec(
"adb -s " + devName + " install " + apkAddress);
BufferedReader br = new BufferedReader(new InputStreamReader(processgetInputStream(), "utf-8"));
while ((buff = brreadLine()) != null)
{
print(buff);
if (buffcontains("INSTALL_FAILED_ALREADY_EXISTS"))
{
print(devName + "已安装");
}
}
brclose();
} catch (IOException e)
{
eprintStackTrace();
}
}
-----
int add(int x, int y){
return x + y;
}
//int main(void){
// printf("%d", add(1, 2));
// return 0;
//}
#include<Pythonh>
static PyObject W_add(PyObject self, PyObject args){
int x;
int y;
if(!PyArg_ParseTuple(args, "i|i", &x, &y)){
return NULL;
} else {
return Py_BuildValue("i", add(x, y));
}
}
static PyMethodDef ExtendMethods[] = {
{"add", W_add, METH_VARARGS, "a function from C"},
{NULL, NULL, 0, NULL},
};
PyMODINIT_FUNC initdemo(){
Py_InitModule("demo", ExtendMethods);
}
“超级终端”是一个程序,使用调制解调器或一条零调制解调电缆以太网连接,再调用此程序能够连接到其他计算机、Telnet 站点、公告板系统 (BBS)、联机服务和主机。
我们可以用它来调试电路是否可行。
下面是一些对超级终端常用的 *** 作:通过发送0x0C(12)即可实现清屏。
有时可能发送一个没有接收正确,连续发送两次0x0C即可保证可靠清屏;将光标退格(注意这并不删除字符):发送0x08(8);将光标右移一个制表符(相当于TAB键):发送0x09(9);将光标移动到行首:发送0x0D(13);将光标移动到同一列的下一行:发送0x0A(10)或0x0B(11);容易理解:通过发送0x0D跟0x0A,就可实现换行功能。
超级终端应用比较简单,和一般的串口软件差不多,这里再讲几个疑难问题解答:1、把超级终端最大化时,那个实际屏幕还是没有变化。
原因:“超级终端”的终端屏幕大小由所使用的字体大小决定。
它将自行显示为 24 行,每行为 80 或 132 个字符,字体为所选字体。
解决方案:在超级终端的“查看”菜单上,选择“字体”。
如果想要较大的终端屏幕,就选择较大的字体。
如果想要较小的终端屏幕,就选择较小的字体。
2、键入的信息没有显示在超级终端上。
原因:终端屏幕显示的信息是来自远程计算机所发送的,而不是已输入到本地计算机上的信息。
为了查看所键入的信息,远程计算机必须可反馈输入信息。
这可能会在输入信息与终端屏幕显示信息之间存在时间滞后的问题。
解决方案:请确保与远程计算机正确连接,并且远程计算机可以反馈用户输入信息。
3、ANSI字符不能够正确显示。
原因:未使用终端字体。
解决方案:在超级终端的“查看”菜单上,选择“字体”。
单击“终端”,然后选择“确定”。
4、连接到远程计算机后,终端屏幕显示无意义信息。
原因:未选择正确的终端仿真类型。
解决方案:在超级终端的“文件”菜单上,选择“属性”。
选中“设置”选项卡。
在“仿真”下拉框中,选择远程计算机的终端类型。
如果远程计算机类型没有在下拉框中列出,则超级终端不支持该类型。
5、不能从终端删除字符。
原因:所连接的远程计算机已经控制了显示在终端屏幕上的字符。
远程计算机期望光标能根据已发送到屏幕上的数据而定位到屏幕中的特定位置。
如果在本地上改变该屏幕,那么就有可能以主机所不能预料或控制的方式,潜在地中断了您与远程计算机之间交互 *** 作。
因此,超级终端不允许从屏幕上删除字符。
解决方案:不能。
6、用CTRL+V不能将数据粘贴到终端屏幕。
原因:如果在该连接属性的“终端键”进行了设置,按 CTRL+V 将会给模拟器发送转义序列。
许多主机使用 CTRL+V 来导航它们的系统。
解决方案:可以将该设置更改到“Windows 键”中,然后 CTRL+V 就会正常运作。
如要更改,请单击超级终端“文件”菜单中的“属性”。
单击“设置”选项卡,然后单击“ Windows 键”单选按钮。
要点使用“ Windows 键”设置时,所有的功能键、箭头键和控制键将在本地执行。
建议选项为:使用“终端键”设置,然后使用菜单进行粘贴。
set interface trust ip 设置防火墙内端口IP地址set interface untrust ip 设置防火墙外端口IP地址set admin sys-ip 设置系统IP地址unset all 清除所有信息
通过设备开通WiFi连接获取Mac地址是最可取的,代码如下:
/
设备开通WiFi连接,通过wifiManager获取Mac地址
/
public static String getMacFromWifi(Context context){
ConnectivityManager connectivityManager = (ConnectivityManager) contextgetSystemService(ContextCONNECTIVITY_SERVICE);
State wifiState = connectivityManagergetNetworkInfo(ConnectivityManagerTYPE_WIFI)getState();
if(wifiState == NetworkInfoStateCONNECTED){//判断当前是否使用wifi连接
WifiManager wifiManager = (WifiManager) contextgetSystemService(ContextWIFI_SERVICE);
if (!wifiManagerisWifiEnabled()) { //如果当前wifi不可用
wifiManagersetWifiEnabled(true);
}
WifiInfo wifiInfo = wifiManagergetConnectionInfo();
return wifiInfogetMacAddress();
}
return null;
}
以上就是关于如何用PC 控制多个Android 终端全部的内容,包括:如何用PC 控制多个Android 终端、如何利用python为c++程序编写终端控制、怎么用超级终端传送目标代码hello.ko等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)