Skip to content

Commit

Permalink
Output PID of launched process
Browse files Browse the repository at this point in the history
  • Loading branch information
Jasper-Bekkers authored and MarijnS95 committed Sep 7, 2022
1 parent 282af7d commit 539f33d
Showing 1 changed file with 30 additions and 14 deletions.
44 changes: 30 additions & 14 deletions ndk-build/src/apk.rs
Original file line number Diff line number Diff line change
Expand Up @@ -191,11 +191,7 @@ impl Apk {
}

pub fn install(&self, device_serial: Option<&str>) -> Result<(), NdkError> {
let mut adb = self.ndk.platform_tool(bin!("adb"))?;

if let Some(device_serial) = device_serial {
adb.arg("-s").arg(device_serial);
}
let mut adb = self.adb(device_serial)?;

adb.arg("install").arg("-r").arg(&self.path);
if !adb.status()?.success() {
Expand All @@ -205,22 +201,42 @@ impl Apk {
}

pub fn start(&self, device_serial: Option<&str>) -> Result<(), NdkError> {
let mut adb = self.ndk.platform_tool(bin!("adb"))?;

if let Some(device_serial) = device_serial {
adb.arg("-s").arg(device_serial);
}

adb.arg("shell")
let mut am_start = self.adb(device_serial)?;
am_start
.arg("shell")
.arg("am")
.arg("start")
.arg("-W")
.arg("-a")
.arg("android.intent.action.MAIN")
.arg("-n")
.arg(format!("{}/android.app.NativeActivity", &self.package_name));
if !adb.status()?.success() {
return Err(NdkError::CmdFailed(adb));
if !am_start.status()?.success() {
return Err(NdkError::CmdFailed(am_start));
}

let pid_vec = self
.adb(device_serial)?
.arg("shell")
.arg("pidof")
.arg(&self.package_name)
.output()?
.stdout;

let pid = std::str::from_utf8(&pid_vec).unwrap().trim();

println!("Launched with PID {}", pid);

Ok(())
}

fn adb(&self, device_serial: Option<&str>) -> Result<Command, NdkError> {
let mut adb = self.ndk.platform_tool(bin!("adb"))?;

if let Some(device_serial) = device_serial {
adb.arg("-s").arg(device_serial);
}

Ok(adb)
}
}

0 comments on commit 539f33d

Please sign in to comment.