android study part5

52
実践 ANDROIDアプリ開発 @JX通信社 酒本伸也 2015/10/7

Upload: shinya-sakemoto

Post on 13-Apr-2017

1.101 views

Category:

Devices & Hardware


1 download

TRANSCRIPT

Page 1: Android study part5

実践ANDROIDアプリ開発

@JX通信社酒本伸也2015/10/7

Page 2: Android study part5

復習

Page 3: Android study part5

RETROFIT+

GOOGLE WEB SEARCH API

Page 4: Android study part5

GOOGLE WEB SEARCH API• Deprecated

• サンプルとして使いやすかったため

• Qiita APIと比較して検証

Page 5: Android study part5

web search api qiita api

Page 6: Android study part5

配列から始まる

web search api qiita api

Page 7: Android study part5

配列から始まる

web search api qiita api

Page 8: Android study part5

配列を持ってる

web search api qiita api

Page 9: Android study part5

配列を持ってる

web search api qiita api

Page 10: Android study part5

indexがついてる

web search api qiita api

Page 11: Android study part5

indexがついてる

web search api qiita api

Page 12: Android study part5

• JsonDeserializerを継承

• Gsonのパースをカスタマイズ

• jsonのパース位置を調整

• Dateオブジェクトのformatを設定

CATDESERIALIZER

Page 13: Android study part5

• jsonのパース位置を調整

• Dateオブジェクトのformatを設定

CATDESERIALIZER

Page 14: Android study part5

• CatResultModelを受け取り、メンバーのList<CatNewsModel>から取り出す

Page 15: Android study part5

効果測定

Page 16: Android study part5

効果測定

• 実際のデータを見て、施策の効果を測る。

• 効果を測定するためにデータを取る

• Google Analytics

Page 17: Android study part5

GOOGLE ANALYTICS

• GAとよく略される

• 無料で使え、開発も活発。

• 個人を特定するデータを送ってはいけない

Page 18: Android study part5

導入(V4)• Google Developer Consoleに

プロジェクトの追加が必要

• 以下から行けばチュートリアルに則り

作成できる

• https://developers.google.com/mobile/add?platform=android&cntapi=analytics (https://goo.gl/5YZ7D2)

Page 19: Android study part5

• projectルートのbuild.gradle

• app/build.gradle

• configuration fileの追加

• AndroidManifest.xml

• Applicationクラスでの初期化

Page 20: Android study part5

• projectルートのbuild.gradle

Page 21: Android study part5

• app/build.gradle

Page 22: Android study part5

• チュートリアルで作成した

「google-services.json」をapp/ に配置

Page 23: Android study part5

• AndroidManifest.xml

Page 24: Android study part5

APPLICATION

• アプリ起動時と終了時に

一度だけ呼ばれるクラス

• 初回起動のActivityよりも先に呼ばれる

• Applicationを継承したクラスを作成する

Page 25: Android study part5

• trackerのインスタンス取得メソッド

• Applicationクラスは終了時まで生き続ける

Page 26: Android study part5

準備完了• 主に計測するのは次の2種類

• スクリーン

• 画面が表示された時など

• イベント

• それ以外の任意の状況

Page 27: Android study part5

スクリーン

Page 28: Android study part5

• BaseActivityを作成しonCreateやonStartなどで計測するようにするとまとめられて楽

• 最近のGAだと自動で計測できる方法もある

• Tracker.enableAutoActivityTracking(enabled)

• xml要作成

• http://qiita.com/takashibagura/items/79a560c739b3a8af2714

Page 29: Android study part5

イベント

Page 30: Android study part5
Page 31: Android study part5

APK署名

Page 32: Android study part5

APK署名

• 署名されたAPK以外は端末に

インストールできない

• 署名にはReleaseとDebugがある

• 開発中はDebugで署名されている

Page 33: Android study part5

APK署名• すでに端末に入っているAPKと

同じパッケージネームでも署名が異なると

上書きできない

• 同一署名がされたAPK同士は

データのやり取りが可能

• 署名をなくすと同じものは復元できない

Page 34: Android study part5

署名(証明書)作成

Page 35: Android study part5

• .jksファイル

• keystoreの

パスワード

• Aliasの

パスワード

• Certificateは

必須ではない

Page 36: Android study part5

GENYMOTIONで動かそう

Page 37: Android study part5

LOG

• 相変わらずLogが見える

• 情報漏洩に繋がるので、見えないようにする

• 手動で消していく?

Page 38: Android study part5

期待値• コードを人力で変更したくない

• バグの元

• 開発版だけログが出て、本番はログが出ない

• アプリの状態を判定できるのか?

• Build Typesで判定できる

Page 39: Android study part5

BUILD TYPES

• 名の通りビルドの種類

• debugとreleaseは

標準で用意されている

• 追加することも可能

Page 40: Android study part5

判定• 「BuildConfig」というクラスが

自動生成されているのでそれを用いる

• パッケージネームやバージョンもわかる

Page 41: Android study part5

LOGを加工• Logクラスをラップする

• Build TypesがdebugのときはLogが呼ばれない

• 表示されない!

Page 42: Android study part5

リバースエンジニアリング• .apkは.zipに置き換えることができる。

• 中身を展開して、情報を抜き取ったり

悪意のある改ざんを行い、

パッケージングされる可能性がある

• 無防備でいるわけにはいかない!

Page 43: Android study part5

難読化

Page 44: Android study part5

難読化

• ソース(java)を一文字で表現するなどして、コード量の圧縮と悪意のある人から

読み解かれにくくする。

Page 45: Android study part5

PROGUARD

• Gradleに対応している難読化のためのツール

• 難読化対象・及び非対象、内容を記述する

• 通常難読化はrelease buildのみに行う

Page 46: Android study part5

PROGUARDの設定• minifyEnabled: 難読化を行うかどうか

• proguardFiles: 難読化のルールを指定

Page 47: Android study part5

PROGUARD-RULES.PRO

• proguard-android.txt

• AndroidのSDK周りで必要な記述がされている

• proguard-rules.pro

• 追加で必要な記述をここに書く

Page 48: Android study part5

どう書けば?

• 自身のコードはそのまま難読化にかけても

動くかもしれないが

果たしてライブラリはそうだろうか?

• 主にライブラリを難読化対象から外す

内容を記述することになる

Page 49: Android study part5

• 追加で使用したライブラリ

• retrofit

• Picasso

• PlayServicesAnalytics

• 公式ページに大体書いてある

Page 50: Android study part5
Page 51: Android study part5

誰も読めないんじゃ?• mappingが

生成されるので、

これを使い戻す。

• ReleaseAPKとセットで

保存しておく

Page 52: Android study part5

• ${sdk}/tools/proguard/bin/proguardgui.sh

• エラー内容(スタックトレース)

• mapping.txt