SlideShare ist ein Scribd-Unternehmen logo
1 von 11
JRebel for Android
1.2.14 update
(2016/06/11)
@kimukou2628
JRebel for Androd最新状況(1)
• 1.0.24 (February 17, 2016)
• > JRebel for Android no longer needs changes to build.gradle files. Existing configuration
is removed automatically.
• android の gradle plugin として提供するのではなく
直接build.gradleを読み込んで、メモリ上で独自build.gradleを生成して、
同一JVMで独自パースしてビルドするようになりました
• 高速化のためらしい。確かにgradle Daemonが環境によってはある意味ボトルネック
な気も
• IDEのMessageタブに表示されているので、IDE上のPluginで処理しているか、内部鯖
上でビルドしたコンソールをリダイレクトしてるか どちらか
• <=そこまでは外見から判断できず。
• <= まあ 最近のandroid gradle plugin って加速度的にFatになっている気がしますので
しょうが無い。。。
JRebel for Androd最新状況(2)
• 現在最新版 は 1.2.14 (June 8, 2016)
• 2週間に1回、偶数番号のリビジョンの最新版が公開
• 挙動的には大分安定してきた気がする
• 内部gradleビルドははscala-runtime/jline等が同梱されているのでScala製?
(jr-android-gradle-bundle.jar)
• Android内部と内部サーバの通信はRetrofitを使用している(jr-android.jar)
• rxjava等も使われているみたい
• 完全javaオンリーというわけではなくndkも使っている (jr-android-native.zip)
• ただ出来ないこともそれなりにあるのでこれだけで開発するのは無理
JRebel for Androd最新状況(3)
• 従来通りのビルドで確認しないと駄目な処
• widgetの登録 /Appindexing / AppLink等のリンク起動系
• =>端末内のショートカットから起動するイメージになるので
「Android Studioから起動してね」スプラッシュがでてそこで止
まってしまう
• ただし、jrebelでビルドしたzipはpatched.apkと名前が分けられて
ビルド/転送されるので、従来のbuild.apkとは別になるので以前よ
り大分テストはしやすくなった
• 従来のapkはいつもどおり
assembleDebugで生成、普通にadb -r installで容易に差し替え可
能(すごく便利!)
Android Studio 2.2 Preview 3 のお話
(1)
• プロセスアタッチ
• Auto/java/native/Hybrid から選択するようになっている
(CLionとマージしたから?)
• <= なんか実行しようとするとGradleビルドが始まって超怖いw
(Java以外の時は必ずgradle buildが走ってしまう状態)
• 従来のは、基本Javaのみで選択肢なし
(NativeApplicationはnativeの方を自動選択)
• LayoutEditor
• 新規追加された ConstraintLayout あたりはちゃんと表示されるが
既存のカスタムレイアウト とか カスタムテーマ とか判定されてしま
うのは
レイアウトプレビューがかなりの確率で全滅(まだ Preview 1 の方が
マシだった
(AppCompatとかのレイアウト前提なのかな?)
Android Studio 2.2 Preview 3 のお話
(2)
• ndk-debugが死にました
• EditConfigでみるとnativeAplicationが廃止
• Application のdebuggerタブでAuto=>Java,native,hybridで切り替え
(因みにこれ変更しても記憶されないバグ有り)
• プロセスアタッチ
• java以外はまともに動かない。は必ずビルドが走って=>接続失敗する
• Hybridって、JJUG2016で話があった下記なのを想定しているのかは気になる・・・
• http://www.slideshare.net/kenjikazumura/python-gdb-java
• ndkのプロセスアタッチが出来ない件は既にissueにあがってるのでそのうち治るの
かな?(Preview4には修正が入るような記載はあるけど。。)
• -PlibraryName=XXX を指定しろみたいなエラーが出ていますが。。
gradle warperの話
• gradle warper自体、現在下記が最新
• 3.0に関しては warperのgradleのバージョンを変更して
gradlew tasks 実行時に incompatible と表示されるので
後方互換性はないようです
• 3.0ベースになる段階で、またAndroid Dslの仕様が大
幅に変わる可能性が高そう
2.14-rc-5 OK
3.0-milestone-1 NG
最新版の体感編(良)
• layout.xml => 即時反映を体感できるのは従来通り
• java => 上手く転送されているか凄くわかりづらい
• USBを抜き差し/adbの再起動 しないと上手く転送されないことも。。。
(これは「高速化されたadb」の不具合のせいなのかな〜)
• JRebelが変更監視はしているんだろうけど
変更有り=>adb push =>adbの転送がコケた=>再転送候補☆
☆辺りの判定が上手く言ってないんではないかな〜と予想される挙動
• 通常の使い方だと下記に統一されている動き
(デバック実行は、現在のところ一番下のライセンスでも使えるみたい)
ロケットマーク 起動も含めた再実行
デバックマーク デバック実行
更新マーク 起動している状態のアプリに差分転送
最新版の体感編(否)
• デバック実行ができるのですが、
デバック中にエラーで落ちるとadbの切断が切れる
• USBを繋ぎ直すと復帰
• これに関してはadbの高速化が歌われ初めててた頃から
通常のdebug実行でも同じ現象が出て不安定だったので、そちらのせいかもしれな
い
• AlertDialogを出した状態でreloadをする
=>Listnerが消えて閉じれなくなる
• データを消して再起動させるテストが辛い。
• データ消去をした時点でアプリが終了されるので、
IDEからロケットマークで再起動が何気に面倒
• 起動させ方がどうも特殊なようだから、現状はJRebel側も対応難しいかも
最新版の体感編(驚)
• 通常と違う起動の仕方のせいか、実はMultiDexでビルドできない状況でも
• ビルドできて転送できてしまったりする。
• インストール&起動のさせ方が違うからかな?
• 最近のMultiDex/InstantRun事情
• ADT形式のサポートがされていない
• manifest.src 等の宣言が無視されている
• issueには上がっているけど回答はない状態
• Manifestの位置/ManifestMarger関係に手を入れるのが難しい?
下記あたりの宣言があるとInstantRunはエラー、MultiDexは無視される
android.applicationVariants.all { variant ->
variant.outputs.each { output ->
output.processResources.manifestFile = file("${projectDir}/AndroidManifest.xml")
output.processManifest.enabled = false
実行logから追う挙動的な動き
• apkをインストールする時
• アプリを実行する時 (サービス経由から起動?)
adb get-serialno
adb push ./irof_history/build/jrebel/data/debug/work/patched.apk
/data/local/tmp/.jrebel.com.irof.irof_history.apk
adb shell pm install -r /data/local/tmp/.jrebel.com.irof.irof_history.apk
adb shell rm /data/local/tmp/.jrebel.com.irof.irof_history.apk
adb shell am start -n
com.irof.irof_history/com.zeroturnaround.jrebel.android.boot.jRebelActivity -ez jrebelStart
true
adb push /XXXX/jrebel8615508642593902281emptyfile
/data/local/tmp/.jrebel.com.irof.irof_history.status
adb shell chmod 0777 /data/local/tmp/.jrebel.com.irof.irof_history.status
adb push /XXXX/jrebel8615508642593902281emptyfile
/data/local/tmp/.jrebel.com.irof.irof_history.error.json
adb shell am startservice -e serviceId XXXX -n
com.irof.irof_history/com.zeroturnaround.jrebel.android.boot.AgentStatusService --user 0

Weitere ähnliche Inhalte

Was ist angesagt?

jenkinsのすゝめ - 継続的インテグレーションと継続的デリバリー
jenkinsのすゝめ - 継続的インテグレーションと継続的デリバリーjenkinsのすゝめ - 継続的インテグレーションと継続的デリバリー
jenkinsのすゝめ - 継続的インテグレーションと継続的デリバリー
Junya Suzuki
 
Jenkinsを用いたAndroidアプリビルド作業効率化
Jenkinsを用いたAndroidアプリビルド作業効率化Jenkinsを用いたAndroidアプリビルド作業効率化
Jenkinsを用いたAndroidアプリビルド作業効率化
Kenichi Kambara
 
Jenkinsを使った初めての継続的インテグレーション
Jenkinsを使った初めての継続的インテグレーションJenkinsを使った初めての継続的インテグレーション
Jenkinsを使った初めての継続的インテグレーション
dcubeio
 

Was ist angesagt? (20)

Jenkins使ってみた~Windows編~
Jenkins使ってみた~Windows編~Jenkins使ってみた~Windows編~
Jenkins使ってみた~Windows編~
 
Jenkins実践入門 第二版 What's New
Jenkins実践入門 第二版 What's NewJenkins実践入門 第二版 What's New
Jenkins実践入門 第二版 What's New
 
Jenkinsで始める継続的デリバリーと実践の道程
Jenkinsで始める継続的デリバリーと実践の道程Jenkinsで始める継続的デリバリーと実践の道程
Jenkinsで始める継続的デリバリーと実践の道程
 
Jenkins 再入門
Jenkins 再入門Jenkins 再入門
Jenkins 再入門
 
Startup jenkins!
Startup jenkins!Startup jenkins!
Startup jenkins!
 
jenkinsのすゝめ - 継続的インテグレーションと継続的デリバリー
jenkinsのすゝめ - 継続的インテグレーションと継続的デリバリーjenkinsのすゝめ - 継続的インテグレーションと継続的デリバリー
jenkinsのすゝめ - 継続的インテグレーションと継続的デリバリー
 
Jenkinsを用いたAndroidアプリビルド作業効率化
Jenkinsを用いたAndroidアプリビルド作業効率化Jenkinsを用いたAndroidアプリビルド作業効率化
Jenkinsを用いたAndroidアプリビルド作業効率化
 
Jenkins実践入門目次チラ見せしちゃいます
Jenkins実践入門目次チラ見せしちゃいますJenkins実践入門目次チラ見せしちゃいます
Jenkins実践入門目次チラ見せしちゃいます
 
Jenkinsstudy#4kokawa
Jenkinsstudy#4kokawaJenkinsstudy#4kokawa
Jenkinsstudy#4kokawa
 
Jenkinsを利用したCI、弊社導入事例
Jenkinsを利用したCI、弊社導入事例Jenkinsを利用したCI、弊社導入事例
Jenkinsを利用したCI、弊社導入事例
 
Gradle布教活動
Gradle布教活動Gradle布教活動
Gradle布教活動
 
Jenkinsを使った初めての継続的インテグレーション
Jenkinsを使った初めての継続的インテグレーションJenkinsを使った初めての継続的インテグレーション
Jenkinsを使った初めての継続的インテグレーション
 
Cibc work kokawa
Cibc work kokawaCibc work kokawa
Cibc work kokawa
 
Android アプリを Jenkins でビルドして GitHub に “リリース” を作る
Android アプリを Jenkins でビルドして GitHub に “リリース” を作るAndroid アプリを Jenkins でビルドして GitHub に “リリース” を作る
Android アプリを Jenkins でビルドして GitHub に “リリース” を作る
 
Ciじゃない方のJenkins
Ciじゃない方のJenkinsCiじゃない方のJenkins
Ciじゃない方のJenkins
 
第9回Jenkins勉強会 超簡単Pipeline講座
第9回Jenkins勉強会 超簡単Pipeline講座第9回Jenkins勉強会 超簡単Pipeline講座
第9回Jenkins勉強会 超簡単Pipeline講座
 
あるゲームアプリケーションの構成とアップデートサイクル
あるゲームアプリケーションの構成とアップデートサイクルあるゲームアプリケーションの構成とアップデートサイクル
あるゲームアプリケーションの構成とアップデートサイクル
 
Android アプリ開発における Gradle ビルドシステム
Android アプリ開発における Gradle ビルドシステムAndroid アプリ開発における Gradle ビルドシステム
Android アプリ開発における Gradle ビルドシステム
 
20160421 react勉強会
20160421 react勉強会20160421 react勉強会
20160421 react勉強会
 
jenkinsで遊ぶ
jenkinsで遊ぶjenkinsで遊ぶ
jenkinsで遊ぶ
 

Ähnlich wie JRebel for Android 1.2.14 update

明日から使えるgradle
明日から使えるgradle明日から使えるgradle
明日から使えるgradle
kimukou_26 Kimukou
 
Gws 20120521 gradle
Gws 20120521 gradleGws 20120521 gradle
Gws 20120521 gradle
Nobuhiro Sue
 
Groovy base gradle_20130309
Groovy base gradle_20130309Groovy base gradle_20130309
Groovy base gradle_20130309
Nobuhiro Sue
 
今流行りのウェブアプリ開発環境Yeoman
今流行りのウェブアプリ開発環境Yeoman今流行りのウェブアプリ開発環境Yeoman
今流行りのウェブアプリ開発環境Yeoman
tomo_masakura
 
Unity ネイティブプラグインの作成について
Unity ネイティブプラグインの作成についてUnity ネイティブプラグインの作成について
Unity ネイティブプラグインの作成について
Tatsuhiko Yamamura
 

Ähnlich wie JRebel for Android 1.2.14 update (20)

明日から使えるgradle
明日から使えるgradle明日から使えるgradle
明日から使えるgradle
 
Android studio で行ってみよう!!
Android studio で行ってみよう!!Android studio で行ってみよう!!
Android studio で行ってみよう!!
 
AndroidStudioはじめました ~Gradle編~
AndroidStudioはじめました ~Gradle編~AndroidStudioはじめました ~Gradle編~
AndroidStudioはじめました ~Gradle編~
 
【ヒカ☆ラボ】 dely株式会社 梅森 翔氏 登壇資料 20171121
【ヒカ☆ラボ】 dely株式会社 梅森 翔氏 登壇資料 20171121【ヒカ☆ラボ】 dely株式会社 梅森 翔氏 登壇資料 20171121
【ヒカ☆ラボ】 dely株式会社 梅森 翔氏 登壇資料 20171121
 
Gws 20120521 gradle
Gws 20120521 gradleGws 20120521 gradle
Gws 20120521 gradle
 
Groovy base gradle_20130309
Groovy base gradle_20130309Groovy base gradle_20130309
Groovy base gradle_20130309
 
Grailsのススメ(仮)
Grailsのススメ(仮)Grailsのススメ(仮)
Grailsのススメ(仮)
 
Gradleでビルドするandroid NDKアプリ
Gradleでビルドするandroid NDKアプリGradleでビルドするandroid NDKアプリ
Gradleでビルドするandroid NDKアプリ
 
Visual Studio 2012 Native Debugger Feature
Visual Studio 2012 Native Debugger FeatureVisual Studio 2012 Native Debugger Feature
Visual Studio 2012 Native Debugger Feature
 
Gradleプラグインを作成してみた
Gradleプラグインを作成してみたGradleプラグインを作成してみた
Gradleプラグインを作成してみた
 
Android Studio 2.2の紹介@Google I/O 2016東京報告会
Android Studio 2.2の紹介@Google I/O 2016東京報告会Android Studio 2.2の紹介@Google I/O 2016東京報告会
Android Studio 2.2の紹介@Google I/O 2016東京報告会
 
Spring native について
Spring native についてSpring native について
Spring native について
 
はてなにおける Android アプリのソフトウェアテスト
はてなにおける Android アプリのソフトウェアテストはてなにおける Android アプリのソフトウェアテスト
はてなにおける Android アプリのソフトウェアテスト
 
Gae hands on
Gae hands onGae hands on
Gae hands on
 
OSS Product feat. Gradle
OSS Product feat. GradleOSS Product feat. Gradle
OSS Product feat. Gradle
 
BazelでビルドしたアプリをGCPにデプロイしようとしてハマった話
BazelでビルドしたアプリをGCPにデプロイしようとしてハマった話BazelでビルドしたアプリをGCPにデプロイしようとしてハマった話
BazelでビルドしたアプリをGCPにデプロイしようとしてハマった話
 
[db tech showcase Tokyo 2017] E35: 12台でやってみた!DWHソフトウェアアプライアンス Db2 Warehouse ~...
[db tech showcase Tokyo 2017] E35: 12台でやってみた!DWHソフトウェアアプライアンス Db2 Warehouse ~...[db tech showcase Tokyo 2017] E35: 12台でやってみた!DWHソフトウェアアプライアンス Db2 Warehouse ~...
[db tech showcase Tokyo 2017] E35: 12台でやってみた!DWHソフトウェアアプライアンス Db2 Warehouse ~...
 
今流行りのウェブアプリ開発環境Yeoman
今流行りのウェブアプリ開発環境Yeoman今流行りのウェブアプリ開発環境Yeoman
今流行りのウェブアプリ開発環境Yeoman
 
特盛!Heroku
特盛!Heroku特盛!Heroku
特盛!Heroku
 
Unity ネイティブプラグインの作成について
Unity ネイティブプラグインの作成についてUnity ネイティブプラグインの作成について
Unity ネイティブプラグインの作成について
 

Mehr von kimukou_26 Kimukou (8)

レガシー環境で個人ベースでなんとか頑張るDVCS(Git)運用
レガシー環境で個人ベースでなんとか頑張るDVCS(Git)運用レガシー環境で個人ベースでなんとか頑張るDVCS(Git)運用
レガシー環境で個人ベースでなんとか頑張るDVCS(Git)運用
 
Eclipse ADTとAndroidStudio両方で動かせる開発環境構築
Eclipse ADTとAndroidStudio両方で動かせる開発環境構築Eclipse ADTとAndroidStudio両方で動かせる開発環境構築
Eclipse ADTとAndroidStudio両方で動かせる開発環境構築
 
Try_to_writecode_practicaltest #atest_hack
Try_to_writecode_practicaltest #atest_hackTry_to_writecode_practicaltest #atest_hack
Try_to_writecode_practicaltest #atest_hack
 
Griffon10 in groovy_fx
Griffon10 in groovy_fxGriffon10 in groovy_fx
Griffon10 in groovy_fx
 
Twitter sphere of #twitter4j #twtr_hack
Twitter sphere of #twitter4j #twtr_hackTwitter sphere of #twitter4j #twtr_hack
Twitter sphere of #twitter4j #twtr_hack
 
griffon plugin を 実際に作ってみよう #jggug
griffon plugin を 実際に作ってみよう #jgguggriffon plugin を 実際に作ってみよう #jggug
griffon plugin を 実際に作ってみよう #jggug
 
Layout analyzerでのgroovyの利用について
Layout analyzerでのgroovyの利用についてLayout analyzerでのgroovyの利用について
Layout analyzerでのgroovyの利用について
 
Hudson using Groovy #jggug
Hudson using Groovy  #jggugHudson using Groovy  #jggug
Hudson using Groovy #jggug
 

JRebel for Android 1.2.14 update

  • 1. JRebel for Android 1.2.14 update (2016/06/11) @kimukou2628
  • 2. JRebel for Androd最新状況(1) • 1.0.24 (February 17, 2016) • > JRebel for Android no longer needs changes to build.gradle files. Existing configuration is removed automatically. • android の gradle plugin として提供するのではなく 直接build.gradleを読み込んで、メモリ上で独自build.gradleを生成して、 同一JVMで独自パースしてビルドするようになりました • 高速化のためらしい。確かにgradle Daemonが環境によってはある意味ボトルネック な気も • IDEのMessageタブに表示されているので、IDE上のPluginで処理しているか、内部鯖 上でビルドしたコンソールをリダイレクトしてるか どちらか • <=そこまでは外見から判断できず。 • <= まあ 最近のandroid gradle plugin って加速度的にFatになっている気がしますので しょうが無い。。。
  • 3. JRebel for Androd最新状況(2) • 現在最新版 は 1.2.14 (June 8, 2016) • 2週間に1回、偶数番号のリビジョンの最新版が公開 • 挙動的には大分安定してきた気がする • 内部gradleビルドははscala-runtime/jline等が同梱されているのでScala製? (jr-android-gradle-bundle.jar) • Android内部と内部サーバの通信はRetrofitを使用している(jr-android.jar) • rxjava等も使われているみたい • 完全javaオンリーというわけではなくndkも使っている (jr-android-native.zip) • ただ出来ないこともそれなりにあるのでこれだけで開発するのは無理
  • 4. JRebel for Androd最新状況(3) • 従来通りのビルドで確認しないと駄目な処 • widgetの登録 /Appindexing / AppLink等のリンク起動系 • =>端末内のショートカットから起動するイメージになるので 「Android Studioから起動してね」スプラッシュがでてそこで止 まってしまう • ただし、jrebelでビルドしたzipはpatched.apkと名前が分けられて ビルド/転送されるので、従来のbuild.apkとは別になるので以前よ り大分テストはしやすくなった • 従来のapkはいつもどおり assembleDebugで生成、普通にadb -r installで容易に差し替え可 能(すごく便利!)
  • 5. Android Studio 2.2 Preview 3 のお話 (1) • プロセスアタッチ • Auto/java/native/Hybrid から選択するようになっている (CLionとマージしたから?) • <= なんか実行しようとするとGradleビルドが始まって超怖いw (Java以外の時は必ずgradle buildが走ってしまう状態) • 従来のは、基本Javaのみで選択肢なし (NativeApplicationはnativeの方を自動選択) • LayoutEditor • 新規追加された ConstraintLayout あたりはちゃんと表示されるが 既存のカスタムレイアウト とか カスタムテーマ とか判定されてしま うのは レイアウトプレビューがかなりの確率で全滅(まだ Preview 1 の方が マシだった (AppCompatとかのレイアウト前提なのかな?)
  • 6. Android Studio 2.2 Preview 3 のお話 (2) • ndk-debugが死にました • EditConfigでみるとnativeAplicationが廃止 • Application のdebuggerタブでAuto=>Java,native,hybridで切り替え (因みにこれ変更しても記憶されないバグ有り) • プロセスアタッチ • java以外はまともに動かない。は必ずビルドが走って=>接続失敗する • Hybridって、JJUG2016で話があった下記なのを想定しているのかは気になる・・・ • http://www.slideshare.net/kenjikazumura/python-gdb-java • ndkのプロセスアタッチが出来ない件は既にissueにあがってるのでそのうち治るの かな?(Preview4には修正が入るような記載はあるけど。。) • -PlibraryName=XXX を指定しろみたいなエラーが出ていますが。。
  • 7. gradle warperの話 • gradle warper自体、現在下記が最新 • 3.0に関しては warperのgradleのバージョンを変更して gradlew tasks 実行時に incompatible と表示されるので 後方互換性はないようです • 3.0ベースになる段階で、またAndroid Dslの仕様が大 幅に変わる可能性が高そう 2.14-rc-5 OK 3.0-milestone-1 NG
  • 8. 最新版の体感編(良) • layout.xml => 即時反映を体感できるのは従来通り • java => 上手く転送されているか凄くわかりづらい • USBを抜き差し/adbの再起動 しないと上手く転送されないことも。。。 (これは「高速化されたadb」の不具合のせいなのかな〜) • JRebelが変更監視はしているんだろうけど 変更有り=>adb push =>adbの転送がコケた=>再転送候補☆ ☆辺りの判定が上手く言ってないんではないかな〜と予想される挙動 • 通常の使い方だと下記に統一されている動き (デバック実行は、現在のところ一番下のライセンスでも使えるみたい) ロケットマーク 起動も含めた再実行 デバックマーク デバック実行 更新マーク 起動している状態のアプリに差分転送
  • 9. 最新版の体感編(否) • デバック実行ができるのですが、 デバック中にエラーで落ちるとadbの切断が切れる • USBを繋ぎ直すと復帰 • これに関してはadbの高速化が歌われ初めててた頃から 通常のdebug実行でも同じ現象が出て不安定だったので、そちらのせいかもしれな い • AlertDialogを出した状態でreloadをする =>Listnerが消えて閉じれなくなる • データを消して再起動させるテストが辛い。 • データ消去をした時点でアプリが終了されるので、 IDEからロケットマークで再起動が何気に面倒 • 起動させ方がどうも特殊なようだから、現状はJRebel側も対応難しいかも
  • 10. 最新版の体感編(驚) • 通常と違う起動の仕方のせいか、実はMultiDexでビルドできない状況でも • ビルドできて転送できてしまったりする。 • インストール&起動のさせ方が違うからかな? • 最近のMultiDex/InstantRun事情 • ADT形式のサポートがされていない • manifest.src 等の宣言が無視されている • issueには上がっているけど回答はない状態 • Manifestの位置/ManifestMarger関係に手を入れるのが難しい? 下記あたりの宣言があるとInstantRunはエラー、MultiDexは無視される android.applicationVariants.all { variant -> variant.outputs.each { output -> output.processResources.manifestFile = file("${projectDir}/AndroidManifest.xml") output.processManifest.enabled = false
  • 11. 実行logから追う挙動的な動き • apkをインストールする時 • アプリを実行する時 (サービス経由から起動?) adb get-serialno adb push ./irof_history/build/jrebel/data/debug/work/patched.apk /data/local/tmp/.jrebel.com.irof.irof_history.apk adb shell pm install -r /data/local/tmp/.jrebel.com.irof.irof_history.apk adb shell rm /data/local/tmp/.jrebel.com.irof.irof_history.apk adb shell am start -n com.irof.irof_history/com.zeroturnaround.jrebel.android.boot.jRebelActivity -ez jrebelStart true adb push /XXXX/jrebel8615508642593902281emptyfile /data/local/tmp/.jrebel.com.irof.irof_history.status adb shell chmod 0777 /data/local/tmp/.jrebel.com.irof.irof_history.status adb push /XXXX/jrebel8615508642593902281emptyfile /data/local/tmp/.jrebel.com.irof.irof_history.error.json adb shell am startservice -e serviceId XXXX -n com.irof.irof_history/com.zeroturnaround.jrebel.android.boot.AgentStatusService --user 0