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

  • View
    7.935

  • Download
    0

  • Category

    Software

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