diff --git a/uppsrc/ide/Android/Adb.cpp b/uppsrc/ide/Android/Adb.cpp index 2e7da2782..54b2efa1a 100644 --- a/uppsrc/ide/Android/Adb.cpp +++ b/uppsrc/ide/Android/Adb.cpp @@ -12,19 +12,37 @@ Adb::~Adb() } -String Adb::MakeInstallCmd(const String& serial, const String& apkPath) const +String Adb::MakeCmd() const +{ + String cmd = NormalizeExePath(path); + if(!serial.IsEmpty()) + cmd << " -s " << serial; + + return cmd; +} + +String Adb::MakeInstallCmd(const String& apkPath) const { return NormalizeExePath(path) + " -s " + serial + " install -r " + apkPath; } -String Adb::MakeInstallOnDeviceCmd(const String& apkPath) const +String Adb::MakeInstallOnDefaultDeviceCmd(const String& apkPath) const { return NormalizeExePath(path) + " -d install -r " + apkPath; } -String Adb::MakeInstallOnEmulatorCmd(const String& apkPath) const +String Adb::MakeInstallOnDefaultEmulatorCmd(const String& apkPath) const { return NormalizeExePath(path) + " -e install -r " + apkPath; } +String Adb::MakeLaunchOnDeviceCmd(const String& packageName, const String& activityName) const +{ + String cmd = NormalizeExePath(path); + cmd << " shell am start"; + cmd << " -n " << packageName << "/" << activityName; + + return cmd; +} + END_UPP_NAMESPACE diff --git a/uppsrc/ide/Android/Android.upp b/uppsrc/ide/Android/Android.upp index 18c13679c..b538bab47 100644 --- a/uppsrc/ide/Android/Android.upp +++ b/uppsrc/ide/Android/Android.upp @@ -15,6 +15,7 @@ file Executable readonly separator, Executables.h, Adb.cpp, + LogCat.cpp, NDKBuild.cpp, Devices readonly separator, Devices.h; diff --git a/uppsrc/ide/Android/Executables.h b/uppsrc/ide/Android/Executables.h index fa5215e32..4d1a94219 100644 --- a/uppsrc/ide/Android/Executables.h +++ b/uppsrc/ide/Android/Executables.h @@ -7,20 +7,46 @@ NAMESPACE_UPP +class LogCat; + class Adb : public Moveable { public: Adb(const String& path); virtual ~Adb(); +public: + String GetPath() const { return this->path; } + String GetSerial() const { return this->serial; } + + void SetPath(const String& path) { this->path = path; } + void SetSerial(const String& serial) { this->serial = serial; } + public: String MakeListDevicesCmd() const; - - String MakeInstallCmd(const String& serial, const String& apkPath) const; - String MakeInstallOnDeviceCmd(const String& apkPath) const; - String MakeInstallOnEmulatorCmd(const String& apkPath) const; + + String MakeCmd() const; + + String MakeInstallCmd(const String& apkPath) const; + String MakeInstallOnDefaultDeviceCmd(const String& apkPath) const; + String MakeInstallOnDefaultEmulatorCmd(const String& apkPath) const; + + String MakeLaunchOnDeviceCmd(const String& packageName, const String& activityName) const; private: String path; + String serial; +}; + +class LogCat : public Moveable { +public: + LogCat(); + virtual ~LogCat(); + +public: + String MakeCmdByTag(const String& packageName) const; + String MakeCmdByTag(const Adb& adb, const String& packageName) const; + +private: }; @@ -32,7 +58,7 @@ public: void SetJobs(int jobs) { this->jobs = jobs; } void SetWorkingDir(const String& workingDir) { this->workingDir = workingDir; } - String ToString() const; + String MakeCmd() const; private: String path; diff --git a/uppsrc/ide/Android/LogCat.cpp b/uppsrc/ide/Android/LogCat.cpp new file mode 100644 index 000000000..95383a91e --- /dev/null +++ b/uppsrc/ide/Android/LogCat.cpp @@ -0,0 +1,29 @@ +#include "Executables.h" + +NAMESPACE_UPP + +LogCat::LogCat() +{ + +} + +LogCat::~LogCat() +{ + +} + +String LogCat::MakeCmdByTag(const String& packageName) const +{ + String cmd; + + cmd << "logcat " << packageName << ":I" << " *:S"; + + return cmd; +} + +String LogCat::MakeCmdByTag(const Adb& adb, const String& packageName) const +{ + return adb.MakeCmd() + " " + MakeCmdByTag(packageName); +} + +END_UPP_NAMESPACE diff --git a/uppsrc/ide/Android/NDKBuild.cpp b/uppsrc/ide/Android/NDKBuild.cpp index 8bc2fed1c..c908c76a6 100644 --- a/uppsrc/ide/Android/NDKBuild.cpp +++ b/uppsrc/ide/Android/NDKBuild.cpp @@ -13,7 +13,7 @@ NDKBuild::~NDKBuild() } -String NDKBuild::ToString() const +String NDKBuild::MakeCmd() const { String cmd = NormalizeExePath(path); if(!workingDir.IsEmpty()) diff --git a/uppsrc/ide/Builders/AndroidBuilder.icpp b/uppsrc/ide/Builders/AndroidBuilder.icpp index 822195a26..9f958c959 100644 --- a/uppsrc/ide/Builders/AndroidBuilder.icpp +++ b/uppsrc/ide/Builders/AndroidBuilder.icpp @@ -271,7 +271,7 @@ bool AndroidBuilder::Link(const Vector& linkfile, const String& linkopti NDKBuild ndkBuild(androidNDK.GetNdkBuildPath()); ndkBuild.SetWorkingDir(GetAndroidProjectDir()); ndkBuild.SetJobs(GetHydraThreads()); - if(Execute(ndkBuild.ToString(), ss) != 0 ) { + if(Execute(ndkBuild.MakeCmd(), ss) != 0 ) { PutConsole(ss.GetResult()); return false; } diff --git a/uppsrc/ide/Debug.cpp b/uppsrc/ide/Debug.cpp index 3dda34e8d..8bbe22e07 100644 --- a/uppsrc/ide/Debug.cpp +++ b/uppsrc/ide/Debug.cpp @@ -205,19 +205,14 @@ void Ide::ExecuteApk() One host = CreateHost(false); Apk apk(target, sdk); String packageName = apk.FindPackageName(); - String lauchableActivityName = apk.FindLauchableActivity(); + String activityName = apk.FindLauchableActivity(); Adb adb = sdk.MakeAdb(); - host->Execute(adb.MakeInstallCmd(select.GetSelectedSerial() ,target)); + adb.SetSerial(select.GetSelectedSerial()); + host->Execute(adb.MakeInstallCmd(target)); - if(!packageName.IsEmpty() && !lauchableActivityName.IsEmpty()) { - String lauchApkOnDeviceCmd; - lauchApkOnDeviceCmd << NormalizeExePath(sdk.AdbPath()); - // lauchApkOnDeviceCmd << " logcat *:E shell am start"; - lauchApkOnDeviceCmd << " shell am start"; - lauchApkOnDeviceCmd << " -n " << packageName << "/" << lauchableActivityName; - host->Execute(lauchApkOnDeviceCmd); - } + if(!packageName.IsEmpty() && !activityName.IsEmpty()) + host->Execute(adb.MakeLaunchOnDeviceCmd(packageName, activityName)); } void Ide::BuildAndDebug0(const String& srcfile) diff --git a/uppsrc/ide/Java/Java.h b/uppsrc/ide/Java/Java.h index bf79ae1bf..968377f64 100644 --- a/uppsrc/ide/Java/Java.h +++ b/uppsrc/ide/Java/Java.h @@ -32,8 +32,13 @@ public: public: String GetBinDir() const { return path + DIR_SEPS + "bin"; } + String GetJarPath() const { return GetBinDir() + DIR_SEPS + "jar" + GetExeExt(); } String GetJavacPath() const { return GetBinDir() + DIR_SEPS + "javac" + GetExeExt(); } + String GetJavadocPath() const { return GetBinDir() + DIR_SEPS + "javadoc" + GetExeExt(); } String GetJavahPath() const { return GetBinDir() + DIR_SEPS + "javah" + GetExeExt(); } + String GetJavapPath() const { return GetBinDir() + DIR_SEPS + "javap" + GetExeExt(); } + String GetJdbPath() const { return GetBinDir() + DIR_SEPS + "jdb" + GetExeExt(); } + String GetJarsignerPath() const { return GetBinDir() + DIR_SEPS + "jarsigner" + GetExeExt(); } String GetKeytoolPath() const { return GetBinDir() + DIR_SEPS + "keytool" + GetExeExt(); }