Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

DroidKaigi2016 windows環境での効率的なアプリ開発手法

8,051 views

Published on

DroidKaigi2016のwindows環境での効率的なアプリ開発手法の講演資料

Published in: Software
  • Be the first to comment

DroidKaigi2016 windows環境での効率的なアプリ開発手法

  1. 1. Windows環境での 効率的なアプリ開発手法 DroidKaigi 2016
  2. 2. 開発したいけど家に Windows しかない ぐぐったらQiitaの記載 は Mac 環境ばかり Macなんてデザイ ナーのPCでしょ 会社の開発マシンが Windows指定 W i n d o w s あ る あ る
  3. 3. 3 と あ る Q i i t a の 超 電 磁 砲 http://qiita.com/konifar/items/6fac0eb1e6b0dc9dfb23
  4. 4. 4 M A C ば か り の W i n d o w s 発 表 会 https://twitter.com/AustenAllred/status/558029756277743616/photo/1
  5. 5. 5 W i n d o w s で 大 丈 夫 な の ? 安心してください。開発できますよ。
  6. 6. 6 A n d r o i d S D K / A n d r o i d S t u d i o http://developer.android.com/intl/ja/sdk/index.html
  7. 7. J a v a 7
  8. 8. J a v a 6 , J a v a 7 o r J a v a 8 8 えっ、私の??低すぎ!? Java6 ここまではAndroidでも イケる Java7 Open JDK採用で Java8 採用 も加速か!? Java8
  9. 9. 9 正しく設定すれば大丈夫! android { compileOptions { sourceCompatibility JavaVersion.VERSION_1_7 targetCompatibility JavaVersion.VERSION_1_7 } } android.compileOptions on build.gradle http://gfx.hatenablog.com/entry/2016/01/04/231504 http://gfx.hatenablog.com/entry/2016/01/10/100933 ToolChain は Java7 or Java8 で
  10. 10. 環 境 変 数 f o r J a v a 10 • JAVAのインストールフォルダを指定 • e.g. C:¥Program Files¥Java¥jdk1.7.0_79¥ • e.g. C:¥Program Files¥Java¥jdk1.8.0_60¥ JAVA_HOME1 • Retrolambda を利用する場合で JAVA_HOMEがJAVA7の場合に必要 • https://github.com/evant/gradle-retrolambda • e.g. C:¥Program Files¥Java¥jdk1.8.0_60¥ JAVA8_HOME2 • %USERPROFILE%¥.{FOLDER_NAME}¥studio.exe.vmoptions and/or %USERPROFILE%¥.{FOLDER_NAME}¥studio64.exe.vmoptions • %USERPROFILE%¥.{FOLDER_NAME}¥idea.properties For Android Studio3
  11. 11. 環 境 変 数 設 定 方 法 11 Win Key + Break key が便利 変数名と変数値を設定
  12. 12. 環 境 変 数 f o r A n d r o i d S t u d i o 12 vmoptions を記載するファイルパス。メモリ割当デフォルトは750MB。 -Xmx2048m の行追加で変更可 idea.vmoptions はIntelliJ インストール時のクラッシュを避けるために無視されます。 studio.exe.vmoptions or studio64.exe.vmoptions を使いましょう STUDIO_VM_OPTIONS4 idea.properties のファイルパス。プラグイン、ログ、エラー通知設定などを記載。 For example, Android Studio 2.0 ships with experimental improved bidirectional text support (issue 182739). To enable this support, create a file named idea.properties with just this content: editor.new.rendering=true STUDIO_PROPERTIES5 Android Studio を動作させるための JDK 例えば、Android app のビルドを Java7 JDK で強制されているが Checkstyle などの Java8 でしか動作し ないPlugin を動かす場合などに有効 STUDIO_JDK6
  13. 13. 13 S D K M a n a g e r
  14. 14. S D K M a n a g e r イントラネット内で開発する場合に必要 Proxy 設定 Tools -> Options  Enable Preview Tools Preview Tools 次のページで紹介 Officecial/User Defined Sites
  15. 15. O f f i c i a l A d d - o n S i t e s モジュールごとに定義サイトを提供 必要ないモジュールは Disable可能 Disableすると更新確認を短縮できる
  16. 16. U s e r D e f i n e d S i t e s https://s3.amazonaws.com/android-sdk- manager/redist/addon.xml Amazon SDK http://developer.samsung.com/sdk- manager/repository/Samsung-SDK.xml Samsung SDK http://developer.lge.com/sdk/android/rep ository.xml LG SDK
  17. 17. 17 U s e r D e f i n e d S i t e s http¥://gsbina.com/repository/addon.xml http://qiita.com/bina1204/items/c6142a9e13f70a73dad7 Android SDK Manager の Add-on を登録する方法
  18. 18. W i n d o w s 開 発 の 難 敵 18
  19. 19. 19 W i n d o w s 開 発 の 難 敵 VID = Vendor ID, PID = Product ID ;Google Nexus 7 %SingleBootLoaderInterface% = USB_Install, USB¥VID_18D1&PID_4E40 %CompositeAdbInterface% = USB_Install, USB¥VID_18D1&PID_4E42&MI_01 %CompositeAdbInterface% = USB_Install, USB¥VID_18D1&PID_4E44&MI_01 android_winusb.inf
  20. 20. O E M D r i v e r 20 OEM Drivers http://developer.android.com/intl/ja/tools/extras/oem- usb.html#Drivers Manufacture USB Driver (e.g. Xperia) http://developer.sonymobile.com/downloads/drivers/
  21. 21. V e n d o r I D f o r U S B D r i v e r 21 Company USB Vendor ID Acer 0502 ASUS 0b05 Dell 413c Foxconn 0489 Fujitsu 04c5 Fujitsu Toshiba 04c5 Garmin-Asus 091e Google 18d1 Haier 201E Hisense 109b HTC 0bb4 Huawei 12d1 Intel 8087 K-Touch 24e3 Company USB Vendor ID KT Tech 2116 Kyocera 0482 Lenovo 17ef LG 1004 Motorola 22b8 MTK 0e8d NEC 0409 Nook 2080 Nvidia 0955 OTGV 2257 Pantech 10a9 Pegatron 1d4d Philips 0471 PMC-Sierra 04da http://developer.android.com/intl/ja/tools/device.html#setting-up Company USB Vendor ID Qualcomm 05c6 SK Telesys 1f53 Samsung 04e8 Sharp 04dd Sony 054c Sony Ericsson 0fce Sony Mobile Communicati ons 0fce Teleepoch 2340 Toshiba 0930 ZTE 19d2
  22. 22. V I D , P I D 確 認 方 法 22 Google USB DriverでAndroid端末をWindowsに認識させる (http://note.chiebukuro.yahoo.co.jp/detail/n128056) 不明なデバイスと認識 プロパティで確認
  23. 23. 野 良 A n d r o i d 端 末 23 Android 4.0(ICS) VID = 0x04b8 http://www.epson.jp/products/moverio /bt200/ Epson Moverio BT-200 Android 4.4(KitKat) VID = 0x2207 http://telepathywear.com/product/ Telepathy Jumper
  24. 24. 24 C:¥Users¥<user name>¥.android¥adb_usb.ini <SDK>¥add-ons¥ にフォルダ作成 フォルダの中に manifest.ini ファイルを作成 SDK Manager から adb usb が認識 [Android] adb_usb.ini の正しい書き方 (http://tande.jp/lab/2012/02/1649) a d b - u s b
  25. 25. E m u l a t o r 25
  26. 26. x 8 6 e m u l a t o r 26  SDK Manager でダウンロード  <SDK>¥extras¥intel¥Hardware_Accelerate d_Execution_Manager¥  インストーラー  intelhaxm-android.exe  silent_install.bat Install HAXM 機種によっては、BIOSで VT/NX Support を ON にしなければならない場合があります。 haxm_check.exe で確認可能
  27. 27. G e n y m o t i o n 27 • 個人利用のみ無料 • 商用利用は有料 • 有料機能 • API Control • バッテリー状態 • GPS状態 • ネットワーク状態 https://www.genymotion.com/ 高速なEmulator • 余計な手間が発生 • ディスク容量も増加 https://www.virtualbox.org/wiki/Downloads 要 VirtualBox
  28. 28. リ バ ー ス エ ン ジ ニ ア リ ン グ ご 利 用 は 計 画 的 に 28
  29. 29. a p k t o o l s : R e v e r s e E n g i n e e r i n g T o o l 29 • Windows 向けに apktool.bat も提供 • 実行PATHがあるフォルダに apktoolls.jar, apktool.bat を移動 • 同じフォルダに apktool-decode.bat apktool.jar • apktool-decode.bat rem @echo off apktool.bat d %1 %2 %3 %4 %5 %6 %7 %8 %9 インストール指示が雑すぎる・・・
  30. 30. S e n d t o ( 送 る ) 活 用 方 法 30 • C:¥"Users¥Your User Name"¥AppData¥Roaming¥Microsoft¥Wind ows¥SendTo Default Path • SendTo フォルダの中に 「SendTo - ショートカッ ト」を入れる 「SendTo - ショートカット」作成 • apktool-decode.bat のショートカットを作って、 SendTo へのショートカットで SendTo にいれる • 任意のフォルダから apk ファイルを apktool- decode.bat で実行 どこからでもSendToに増やせる
  31. 31. シ ン ボ リ ッ ク リ ン ク 活 用 31  Link Creation Shell Extension  https://github.com/kobake/lnhdr リンク作成シェル拡張  NTFSの「リパース・ポイント(ファイル・パスの解釈を独自に行う機 能)」を使って実装されたリンク機能  dir で見ると <JUNCTION> と表示 ジャンクション  作成  mklink /j ~  削除  rmdir ~ Command Line Interface
  32. 32. 32 a p k t o o l s シ ョ ー ト カ ッ ト
  33. 33. C l a s s y S h a r k 33 Open APK, Export all generated data to a text file, Export generated file from a specific class to a text file, Open ClassyShark and display a specific class in the GUI, Inspect APK Dump all strings (combined classes.dex string tables) from your APK Android executables browser https://github.com/google/android-classyshark This is not an official Google product rem @echo off java -jar "%~dp0¥ClassyShark.jar" -open %1 ClassyShark-open.bat
  34. 34. D e c o m p i l e r a p k - > d e x - > j a r - > j a v a 34 http://code.google.com/p/dex2jar/ dex2jar jd-gui-windows-1.4.0 jd-gui.exe https://github.com/skylot/jadx Dex to Java decompiler
  35. 35. N e x u s R o o t T o o l k i t 35 Unlocking Rooting http://www.wugfresh.com/nrt/ Relocking and Unrooting
  36. 36. G i t 36
  37. 37. Git for Windows https://git-scm.com/download/win Cygwin https://www.cygwin.com/ GitHub Desktop https://desktop.github.com/ SourceTree https://www.atlassian.com/software /sourcetree/overview/ TortoiseGit https://tortoisegit.org/ GitKraken http://www.gitkraken.com/ http://blog.axosoft.com/wp- content/uploads/2015/10/1-main- view.png g i t o n W i n d o w s P l a t f o r m
  38. 38. 注 意 点 38 LFで統一することが多い? いつのまにか CRLF になっていたり CRLF前提のツール・エディタ多数・・・ 改行コード1 Windows 上は Shift JIS が多い ソースコードは UTF-8 が多い? Android Studio の Editor の右下で確認可能 文字コード2 いつのまにか 644 から 755 になっていたりして git status が真っ赤に。。。 chmod 644 foo.txt git/config の filemode で調整 ファイルアクセス権(File Permissions)3
  39. 39. T i p s 小 さ な 幸 せ を 39
  40. 40. A n d r o i d S t u d i o S t a r t P a g e
  41. 41. 41 f i n i s h e d w i t h n o n - z e r o e x i t v a l u e 1 メモリが足りない場合に頻発 タスクマネージャからメモリ使っているプロセスを終了 $ ./gradlew assembleDebug
  42. 42. T i p s 42  git の差分比較・マージを WinMerge で行う  http://qiita.com/kobake@github/items/fb317b4fdacad718a4b2 WinMerge でグラフィカルに difff 確認 vysor https://chrome.google.com/webstore/detail/vysor- beta/gidgenkbbabolejbgbpnhbimgjbffefm リアルタイム Android Screen Monitor
  43. 43. T i p s 43  非公式ツール  MS 社員が開発しているらしい  https://technet.microsoft.com/en-us/sysinternals/bb897578.aspx Caps Lock を Ctrl に上書き  Windowsの操作を emacs キーバインドで操作できる  http://www.cam.hi-ho.ne.jp/oishi/indexen.html Xkeymacs
  44. 44. ま と め 44 Windows でも十分に開発できる 便利なツールと組み合わせて開発効率を向上 Windowsアプリ、Windows Phoneアプリも開発できる
  45. 45. ご 静 聴 あ り が と う ご ざ い ま し た 45

×