2024-03-18 09:13:45 | 我爱编程网
ADB接口的作用主要是让电脑等其它设备控制安卓系统的,所以,称为“中间桥”;不是为安卓自已用的,自已可直接执行称为SHELL,这与ADB无关。所以安卓JAVA不一定有封装的ADB类。电脑上有ADB服务程序,端口5037,它是中间程序,与安卓系统上守护进程(Daemon)通讯。如果要在自已的手机上应该也能执行adb命令,应该直接跟守护进程(Daemon)通讯了。百度上可以搜到的方法并不满意。楼主用exec执行CMD命令,这已不是ADB接口了,这是系统的SHELL了!!!自已用socket/tcp直接发命令效果不知怎样,地址用127.0.0.1,安卓daemon进程的端口5555是奇数开始。。。。。至于ADB对话协议百度可以搜到,建议试一试。楼上其实要的是SHELL,并不是ADB,我搜到一篇文章,但我并没有试过,是否需要ROOT,不得而知,附上,你试一试,回个话。
代码如下:
package com.symbio.ltp.adb;
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.util.ArrayList;
import java.util.List;
import com.symbio.ltp.model.ConfigPropertiesData;
import com.symbio.ltp.util.Log;
public class ShellCommand {
private String name;
private Process process;
private BufferedWriter writer;
private BufferedReader reader;
private BufferedReader errorReader;
private List
private String[] returnValue;
public ShellCommand(String name) {
this.name = name;
}
public String getName() {
return name;
}
public Process getProcess() {
return process;
}
public BufferedWriter getOutputWriter() {
return writer;
}
public BufferedReader getInputReader() {
return reader;
}
public BufferedReader getErrorReader() {
return errorReader;
}
public boolean start(String cmd) {
try {
process = Runtime.getRuntime().exec(cmd);
writer = new BufferedWriter(new OutputStreamWriter(process.getOutputStream()));
reader = new BufferedReader(new InputStreamReader(process.getInputStream()));
errorReader = new BufferedReader(new InputStreamReader(process.getErrorStream()));
} catch (IOException e) {
Log.debug("Exception in shell(" + name + ") -- " + e.getMessage());
return false;
}
return true;
}
public boolean exec(String cmd) {
String line;
try {
writer.write(cmd + "\n");
writer.flush();
while((line = reader.readLine()) != null) {
Log.debug(line);
if(line.equals(ConfigPropertiesData.ltp_success)) {
return true;
} else if(line.equals(ConfigPropertiesData.ltp_fail)) {
return false;
}
}
} catch (IOException e) {
Log.debug("Exception in shell(" + name + ") -- " + e.getMessage());
return false;
}
return true;
}
public String [] execReturn(String cmd) {
String line;
list = new ArrayList
try {
writer.write(cmd + "\n");
writer.flush();
line = reader.readLine();
while((line = reader.readLine()) != null) {
if(line.length()>0 && !(line.startsWith("#"))){
Log.debug(line);
list.add(line);
if(line.equals(ConfigPropertiesData.ltp_success)) {
break;
} else if(line.equals(ConfigPropertiesData.ltp_fail)) {
break;
}
}
}
int size = list.size();
returnValue = new String[size];
for (int i = 0; i < size; i++) {
returnValue[i] = list.get(i);
}
} catch (IOException e) {我爱编程网
Log.debug("Exception in shell(" + name + ") -- " + e.getMessage());
return null;
}
return returnValue;
}
public void terminate() {
try {
writer.write(0x03);
writer.flush();
} catch (IOException e) {
Log.debug("Exception in shell(" + name + ") -- " + e.getMessage());
}
}
}
我爱编程网(https://www.52biancheng.com)小编还为大家带来adb install怎么调用到pm.java的相关内容。
其入口函数源文件为pm.java
(源文件路径:android\frameworks\base\cmds\pm\src\com\android\commands\pm\pm.java)
其中\system\framework\pm.jar 包管理库
包管理脚本 \system\bin\pm 解析
showUsage就是使用方法
private static void showUsage() {
System.err.println("usage: pm [list|path|install|uninstall]");
System.err.println(" pm list packages [-f]");
System.err.println(" pm list permission-groups");
System.err.println(" pm list permissions [-g] [-f] [-d] [-u] [GROUP]");
System.err.println(" pm list instrumentation [-f] [TARGET-PACKAGE]");
System.err.println(" pm list features");
System.err.println(" pm path PACKAGE");
System.err.println(" pm install [-l] [-r] [-t] [-i INSTALLER_PACKAGE_NAME] [-s] [-f] PATH");
System.err.println(" pm uninstall [-k] PACKAGE");
System.err.println(" pm enable PACKAGE_OR_COMPONENT");
System.err.println(" pm disable PACKAGE_OR_COMPONENT");
System.err.println(" pm setInstallLocation [0/auto] [1/internal] [2/external]");
**********************省略**************************
}
如何在安卓系统运行java程序?1.首先在虚拟机上运行一次,然后打开你的源代码在bin文件下有个apk文件把它拿出来装到你手机上就可以了。2或你以后可以直接用真机代替虚拟机搞开发,可以直接连接数据线到电脑,(要有驱动,如不知道怎么下驱动,可以下载91手机助手或豌豆荚帮你自动安装),然后你在Eclipse下点击运行你的程序是可以在Target项中点击Manual选择真机运。觉得有
手机上能不能进行java语言编程?当然能,AIDE这个手机软件就可以,集成了Java开发环境,可以很轻松的在手机上进行Java编程,下面我简单介绍一下这个软件的安装和使用:1.首先,安装AIDE,这个直接在手机应用商店中搜索就行,如下,大概也就30多M,直接下载安装:2.安装完成后,打开这个APP,新建一个Java工程,之后就可以直接进行Java编程了,效果如下,这里支持自动补
怎么在安卓手机运行pythonpython语言应用很广泛,自己也很喜欢使用它,其实我们也可以直接在自己的安卓手机上做python开发学习,只需要简单的配置下环境就可以了。首先我们可以在手机上安装qpython3。接着我们可以直接选择“终端”。在这里面我们可以直接一行一行输入执行代码。我们也可以选择进入“编辑器”。直接输入我们的python脚本代码。然后点击底部的“执行
如何用java程序操作安卓模拟器首先是电脑的java模拟器。在做测试以前在搜索引擎中将两个模拟器下载下来。自然是下载安全无毒的java模拟器。电脑使用的是exe文件但是常以rar打包。安卓智能机是apk文件。我使用的java模拟器是个绿色软件,也就是说无需安装。解压压缩包后打开文件夹。找到主运行文件点击运行。在程序主界面点击文件。选择载入jar文件。jar就是java数据文件java
PHPFTP简介PHP提供了一套FTP函数库,它通过文件传输协议(FTP)为开发者提供了对远程文件服务器的客户端访问能力。这些功能包括但不限于建立、登录和断开与FTP服务器的连接,以及执行文件的上传、下载、重命名、删除和获取文件信息等操作。需要注意的是,PHP的FTP函数并非在所有服务器上都能正常工作,且它们可能返回的结果也会有所差异。自PHP版本3起,FTP功能就已经被纳入支持。对于
安装了java之后怎样运行程序java,你指的是JDK(javadevelopmentkits)安装完成了,你需要完成以下几个步骤:首先:先将JDK的path,classpath,JAVA_HOME,配置到电脑变量里面,然后:测试JDK是否安装成功,进入电脑控制台,XP是开始菜单->运行选项,Win7为开始菜单->搜索内容里面输入cmd进入控制台,在控制台输入java-v
JAVA获取一段程序运行时间abstract class GetTime { public final void getTime() { long start = System.currentTimeMillis(); runcode(); long end = System.currentTimeMillis(); System.out.println("运行时间:" + (end
java获取运行时间很多朋友都想知道java怎么获取运行时间?下面就一起来了解一下吧~第一种是以毫秒为单位计算的。//伪代码long startTime=System.currentTimeMillis(); //获取开始时间doSomeThing(); //测试的代码段long endTime=System.currentTimeMillis(); //获取结束时间System.
2024-01-05 14:11:24
2025-02-01 20:24:39
2025-02-12 03:21:37
2025-02-10 15:19:48
2025-01-28 17:58:32
2024-11-22 05:08:01