View
7.935
Download
0
Category
Preview:
Citation preview
Windows環境での効率的なアプリ開発手法
DroidKaigi 2016
開発したいけど家に
Windows しかない
ぐぐったらQiitaの記載
はMac 環境ばかり
Macなんてデザイ
ナーのPCでしょ
会社の開発マシンが
Windows指定
W i n d o w sあ る あ る
3
と あ る Q i i t aの超電磁砲
http://qiita.com/konifar/items/6fac0eb1e6b0dc9dfb23
4
M A Cばか り の W i n d o w s発表会
https://twitter.com/AustenAllred/status/558029756277743616/photo/1
5
W i n d o w s で大丈夫なの?
安心してください。開発できますよ。
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
J a v a
7
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
正しく設定すれば大丈夫!
android {
compileOptions {
sourceCompatibility JavaVersion.VERSION_1_7
targetCompatibility JavaVersion.VERSION_1_7
}
}
android.compi leOpt ions on bui ld.gradle
http://gfx.hatenablog.com/entry/2016/01/04/231504
http://gfx.hatenablog.com/entry/2016/01/10/100933
ToolChain は Java7 or Java8 で
環境変数 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
Win Key + Break key が便利 変数名と変数値を設定
環境変数 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
S D K M a n a g e r
S D K M a n a g e r
イントラネット内で開発する場合に必要
Proxy 設定
Tools -> Options
Enable Preview Tools
Preview Tools
次のページで紹介
Off icecia l/User Def ined S i tes
O f f i c i a l A d d - o n S i t e s
モジュールごとに定義サイトを提供
必要ないモジュールは Disable可能
Disableすると更新確認を短縮できる
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
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 を登録する方法
W i n d o w s開発の難敵
18
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
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/
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
V I D , P I D 確認方法
22
Google USB DriverでAndroid端末をWindowsに認識させる
(http://note.chiebukuro.yahoo.co.jp/detail/n128056)
不明なデバイスと認識 プロパティで確認
野良 A n d r o i d端末
23
Android 4.0(ICS)
VID = 0x04b8
http://www.epson.jp/products/moverio
/bt200/
Epson Mover io BT-200
Android 4.4(KitKat)
VID = 0x2207
http://telepathywear.com/product/
Telepathy Jumper
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
E m u l a t o r
25
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
Insta l l HAXM
機種によっては、BIOSで VT/NX Support を
ON にしなければならない場合があります。
haxm_check.exe で確認可能
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
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
インストール指示が雑すぎる・・・
S e n d t o (送 る ) 活 用方法
30
• C:¥"Users¥Your User
Name"¥AppData¥Roaming¥Microsoft¥Wind
ows¥SendTo
Defaul t Path
• SendToフォルダの中に 「SendTo -ショートカッ
ト」を入れる
「SendTo - ショートカット」作成
• apktool-decode.batのショートカットを作って、
SendToへのショートカットで SendToにいれる
• 任意のフォルダから apk ファイルを apktool-
decode.bat で実行
どこからでもSendToに増やせる
シ ン ボ リ ッ ク リ ン ク 活用
31
Link Creation Shell Extension
https://github.com/kobake/lnhdr
リンク作成シェル拡張
NTFSの「リパース・ポイント(ファイル・パスの解釈を独自に行う機
能)」を使って実装されたリンク機能
dirで見ると <JUNCTION> と表示
ジャンクション
作成
mklink /j ~ 削除
rmdir~
Command L ine Interface
32
a p k t o o l s シ ョ ー ト カ ッ ト
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 off ic ia l Google product
rem @echo off
java -jar "%~dp0¥ClassyShark.jar" -open %1
ClassyShark-open.bat
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 decompi ler
N e x u s R o o t T o o l k i t
35
Unlocking
Root ing
http://www.wugfresh.com/nrt/
Relocking and Unroot ing
G i t
36
Git for Windowshttps://git-scm.com/download/win
Cygwinhttps://www.cygwin.com/
GitHub Desktophttps://desktop.github.com/
SourceTreehttps://www.atlassian.com/software
/sourcetree/overview/
TortoiseGithttps://tortoisegit.org/
GitKrakenhttp://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
LFで統一することが多い?
いつのまにか CRLF になっていたり
CRLF前提のツール・エディタ多数・・・
改行コード1
Windows 上は Shift JISが多い
ソースコードは UTF-8 が多い?
Android Studio の Editor の右下で確認可能
文字コード2
いつのまにか 644 から 755 になっていたりして git status が真っ赤に。。。
chmod 644 foo.txt
git/configの filemodeで調整
ファイルアクセス権 (F i le Permissions)3
T i p s小さな幸せを
39
A n d r o i d S t u d i o S t a r t P a g e
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
T i p s
42
git の差分比較・マージをWinMergeで行う
http://qiita.com/kobake@github/items/fb317b4fdacad718a4b2
WinMerge でグラフィカルに diff f 確認
vysor
https://chrome.google.com/webstore/detail/vysor-
beta/gidgenkbbabolejbgbpnhbimgjbffefm
リアルタイム Android Screen Monitor
T i p s
43
非公式ツール
MS 社員が開発しているらしい
https://technet.microsoft.com/en-us/sysinternals/bb897578.aspx
Caps Lock を Ctr l に上書き
Windowsの操作を emacsキーバインドで操作できる
http://www.cam.hi-ho.ne.jp/oishi/indexen.html
Xkeymacs
ま と め
44
Windows でも十分に開発できる
便利なツールと組み合わせて開発効率を向上
Windowsアプリ、Windows Phoneアプリも開発できる
ご静聴あ りが と う ご ざいま した
45
Recommended