-Remote deploy now uses FS over USB on Android, super fast!

This commit is contained in:
Juan Linietsky 2016-01-20 00:29:34 -03:00
parent 891e31b139
commit c9580965ea
4 changed files with 46 additions and 4 deletions

View file

@ -34,9 +34,9 @@
#define DEBUG_PRINT(m_p) print_line(m_p)
//#define DEBUG_PRINT(m_p) print_line(m_p)
//#define DEBUG_TIME(m_what) printf("MS: %s - %lli\n",m_what,OS::get_singleton()->get_ticks_usec());
//#define DEBUG_PRINT(m_p)
#define DEBUG_PRINT(m_p)
#define DEBUG_TIME(m_what)

View file

@ -1513,6 +1513,13 @@ Error EditorExportPlatformAndroid::run(int p_device, int p_flags) {
//export_temp
ep.step("Exporting APK",0);
bool use_adb_over_usb = bool(EDITOR_DEF("android/use_remote_debug_over_adb",true));
if (use_adb_over_usb) {
p_flags|=EXPORT_REMOTE_DEBUG_LOCALHOST;
}
String export_to=EditorSettings::get_singleton()->get_settings_path()+"/tmp/tmpexport.apk";
Error err = export_project(export_to,true,p_flags);
if (err) {
@ -1559,6 +1566,35 @@ Error EditorExportPlatformAndroid::run(int p_device, int p_flags) {
return ERR_CANT_CREATE;
}
if (use_adb_over_usb) {
args.clear();
args.push_back("reverse");
args.push_back("--remove-all");
err = OS::get_singleton()->execute(adb,args,true,NULL,NULL,&rv);
int port = Globals::get_singleton()->get("debug/debug_port");
args.clear();
args.push_back("reverse");
args.push_back("tcp:"+itos(port));
args.push_back("tcp:"+itos(port));
err = OS::get_singleton()->execute(adb,args,true,NULL,NULL,&rv);
print_line("Reverse result: "+itos(rv));
int fs_port = EditorSettings::get_singleton()->get("file_server/port");
args.clear();
args.push_back("reverse");
args.push_back("tcp:"+itos(fs_port));
args.push_back("tcp:"+itos(fs_port));
err = OS::get_singleton()->execute(adb,args,true,NULL,NULL,&rv);
print_line("Reverse result2: "+itos(rv));
}
ep.step("Running on Device..",3);
args.clear();
args.push_back("-s");
@ -1724,6 +1760,7 @@ void register_android_exporter() {
//EDITOR_DEF("android/release_username","");
//EditorSettings::get_singleton()->add_property_hint(PropertyInfo(Variant::STRING,"android/release_keystore",PROPERTY_HINT_GLOBAL_FILE,"*.keystore"));
EDITOR_DEF("android/timestamping_authority_url","");
EDITOR_DEF("android/use_remote_debug_over_adb",false);
Ref<EditorExportPlatformAndroid> exporter = Ref<EditorExportPlatformAndroid>( memnew(EditorExportPlatformAndroid) );
EditorImportExport::get_singleton()->add_export_platform(exporter);

View file

@ -1000,6 +1000,9 @@ void EditorExportPlatform::gen_export_flags(Vector<String> &r_flags, int p_flags
String host = EditorSettings::get_singleton()->get("network/debug_host");
if (p_flags&EXPORT_REMOTE_DEBUG_LOCALHOST)
host="localhost";
if (p_flags&EXPORT_DUMB_CLIENT) {
int port = EditorSettings::get_singleton()->get("file_server/port");
String passwd = EditorSettings::get_singleton()->get("file_server/password");
@ -1014,6 +1017,7 @@ void EditorExportPlatform::gen_export_flags(Vector<String> &r_flags, int p_flags
if (p_flags&EXPORT_REMOTE_DEBUG) {
r_flags.push_back("-rdebug");
r_flags.push_back(host+":"+String::num(GLOBAL_DEF("debug/debug_port", 6007)));
List<String> breakpoints;

View file

@ -136,8 +136,9 @@ public:
enum ExportFlags {
EXPORT_DUMB_CLIENT=1,
EXPORT_REMOTE_DEBUG=2,
EXPORT_VIEW_COLLISONS=4,
EXPORT_VIEW_NAVIGATION=8
EXPORT_REMOTE_DEBUG_LOCALHOST=4,
EXPORT_VIEW_COLLISONS=8,
EXPORT_VIEW_NAVIGATION=16,
};