Googleの人から教えてもらったtips
dagezi@{twitter, github, gmail.com}
adb lolcat
logcatになるだけです#adblolcat
W/ActivityManager( 602):UnabletostartserviceIntent{act=com.extscreen.service}U=
W/ActivityManager(...
ここから本題
強制アップデー
トさせてみた
dagezi@{twitter, github, gmail.com}
自己紹介SASAKI Takesi(佐々木毅史) akadagezi(大个子)
教育関係の会社でAndroidエンジニアやってます。
QuipperはAndroid、iOS、Rubyエンジニアなど募集してま
す!
Androidで専用端末例:某社の教育用デバイス
配布後にupdateしたい
GooglePlay使えない
Androidなダイアログだしたくない
でも system権限とれる!
AppDater作ったServiceとして起動
定期的に配布サイトチェック
更新されていれば背後で取得
頃合いを見てインストール
プロンプトとか一切出ません!UIはアプリで制御可能
ユーザは拒否できない!
インストーラの実際
氏ありがとう!PaulNonaka
Systemのcertで署名する
許可を付加
がReflectionでPackageManagerの隠
しメソッドを呼び出す
INSTALL_PACKAGES
FakePackageMan...
うまく動いた!!
半年間で1000人ほどに18回アップデートしほぼ成功
できてない点インストールのステータス取得
エラーとかがコールバックで帰ってこない!
回避策: でうまく行った
かチェック
インストール失敗時の復帰に弱い
SystemのCertが必要
こればかりは現状では... rootを取ればできるかもしれな...
今後Openにしようと思った
deploy環境も含めて提供したい
でもニッチすぎる
内部的にはこれからも使うよ
Upcoming SlideShare
Loading in …5
×

強制アップデートさせてみた

847 views

Published on

potatotips #5 発表

0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
847
On SlideShare
0
From Embeds
0
Number of Embeds
48
Actions
Shares
0
Downloads
0
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

強制アップデートさせてみた

  1. 1. Googleの人から教えてもらったtips dagezi@{twitter, github, gmail.com}
  2. 2. adb lolcat
  3. 3. logcatになるだけです#adblolcat W/ActivityManager( 602):UnabletostartserviceIntent{act=com.extscreen.service}U= W/ActivityManager( 602):UnabletostartserviceIntent{act=com.extscreen.service}U= W/ActivityManager( 602):DuplicatefinishrequestforActivityRecord{663a00c0u0android I/ActivityManager( 602):Processcom.twitter.android(pid20696)hasdied. I/ActivityManager( 602):Processcom.google.android.apps.plus(pid20733)hasdied. I/ActivityManager( 602):Processcom.nianticproject.ingress(pid23720)hasdied. I/ActivityManager( 602):Processandroid.process.media(pid20769)hasdied. I/ActivityManager( 602):Processandroid.process.acore(pid20809)hasdied. D/MobileDataStateTracker( 602):default:setPolicyDataEnable(enabled=true) I/ActivityManager( 602):Processcom.google.android.keep(pid21537)hasdied. I/ActivityManager( 602):Processcom.android.providers.calendar(pid19267)hasdied. I/PowerManagerService( 602):Goingtosleepbyuserrequest... I/ActivityManager( 602):Configchanges=480{1.0440mcc10mncja_JPldltrsw360dpw598dp お試しを!
  4. 4. ここから本題
  5. 5. 強制アップデー トさせてみた dagezi@{twitter, github, gmail.com}
  6. 6. 自己紹介SASAKI Takesi(佐々木毅史) akadagezi(大个子) 教育関係の会社でAndroidエンジニアやってます。 QuipperはAndroid、iOS、Rubyエンジニアなど募集してま す!
  7. 7. Androidで専用端末例:某社の教育用デバイス 配布後にupdateしたい GooglePlay使えない Androidなダイアログだしたくない
  8. 8. でも system権限とれる!
  9. 9. AppDater作ったServiceとして起動 定期的に配布サイトチェック 更新されていれば背後で取得 頃合いを見てインストール プロンプトとか一切出ません!UIはアプリで制御可能 ユーザは拒否できない!
  10. 10. インストーラの実際 氏ありがとう!PaulNonaka Systemのcertで署名する 許可を付加 がReflectionでPackageManagerの隠 しメソッドを呼び出す INSTALL_PACKAGES FakePackageManager
  11. 11. うまく動いた!! 半年間で1000人ほどに18回アップデートしほぼ成功
  12. 12. できてない点インストールのステータス取得 エラーとかがコールバックで帰ってこない! 回避策: でうまく行った かチェック インストール失敗時の復帰に弱い SystemのCertが必要 こればかりは現状では... rootを取ればできるかもしれな いけど。 PackageManager#getPackageInfo
  13. 13. 今後Openにしようと思った deploy環境も含めて提供したい でもニッチすぎる 内部的にはこれからも使うよ

×