Android 代码中启动java程序
通过app_process 即可 App的启动在源码里也是通过app_process
Runtime.getRuntime().exec 用执行命令行的方式 通过 app_process来启动新的进程
demo
JavaProcess 要加载的java程序代码 其中要有main函数入口
java
import android.util.Log;
public class JavaProcess {
public static void main(String[] array){
boolean isShow = false;
if (array != null && array.length > 0){
isShow = Boolean.valueOf(array[0]);
}
Log.e("Mny","HIjack");
System.out.println("输出参数"+isShow);
}
}
MainActivity
java
public class MainActivity extends AppCompatActivity {
String cmd;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
cmd = String.format("export CLASSPATH=%s;exec app_process /system/bin %s %s ---application",
this.getApplicationContext().getPackageResourcePath(),//应用包路径
JavaProcess.class.getName(), //需要执行的java类
"xxxxx");//java类main参数
runExex(cmd);
}
public void runExex(String cmd){
try{
Process process = Runtime.getRuntime().exec("su");// 切换到root帐号
DataOutputStream os = new DataOutputStream(process.getOutputStream());
os.writeBytes(cmd);
os.writeBytes(" exit \n");
os.flush();
}catch ( Exception e){
e.printStackTrace();
}
}
}