現場で使える[逆引き+実践]Androidプログラミングテクニック

[表紙]現場で使える[逆引き+実践]Androidプログラミングテクニック

A5判/464ページ/CD1枚

定価(本体2,780円+税)

ISBN 978-4-7741-5187-8

ただいま弊社在庫はございません。

電子版

→学校・法人一括購入ご検討の皆様へ

書籍の概要

この本の概要

普及が進むスマートフォンで注目されるAndroid OSですが,組込みシステムの宿命とも言うべき「リソースの制限,バッテリー駆動」といった,プログラミングに関わる制限事項が多数存在します。また「新しい情報をリアルタイムで追随しにくい」といった問題,さらには「従来型のC/C++の組込み開発をしてきた人や会社はJavaに不慣れ」「Javaに慣れた人や会社は低レベルの理解が足りず参入に苦労」という問題もあります。こういったノウハウ不足の問題に対し,本書は徹底的にチューニングの方法を解説することでも寄与します。

こんな方におすすめ

  • Androidスマートフォンでの開発に従事しているプログラマー
  • Androidを組込みに応用することを考えている開発者

目次

はじめに

Chapter1 Android SDKの必修知識

1.1 アクティビティ

1.2 サービス

1.3 インテント

1.4 コンテントプロバイダー

1.5 アプウィジェット

1.6 Handler/Looper

Chapter2 Android 3.0,4.0の機能

2.1 Android 3.0,4.0での追加機能

2.2 フラグメント

2.3 ViewPager

2.4 GridLayout

2.5 ドラッグ&ドロップ

2.6 ActionBar

2.7 ステータスバー通知

2.8 ローダ

Chapter3 実戦のコーディング

3.1 画面

  • 01 動的に画面のViewを構成したい
  • 02 画面レイアウトを共通化したい
  • 03 ユーザー操作に追従するアニメーションを簡単に実装したい
  • 04 縦/横で異なる画面を作りたい
  • 05 大きな画像を読み込みたい
  • 06 画面のキャプチャを撮りたい
  • 07 画像を手軽に縮小拡大/回転させたい
  • 08 常に最前面にViewを表示したい
  • 09 透明なアクティビティを作りたい
  • 10 Viewに表示する文字を縁取りしたい
  • 11 カテゴリー付きのスピナーを作成したい
  • 12 ジェスチャーで画像を縮小拡大/回転させたい
  • 13 画像ビューアーを簡単に実現したい

3.2 デバイス制御

  • 01 スクリーンの点灯/消灯を検知してバッテリの持ちを良くしたい
  • 02 位置情報の偽装対策をしたい
  • 03 センサを使って端末の向きに応じた方位を計算したい
  • 04 通信可能な状態をチェック/監視したい

3.3 バックグラウンド処理

  • 01 データ生成処理に時間がかかることをバックグラウンドで行いたい
  • 02 バックグラウンドでイベントに応じた処理を行いたい
  • 03 終了されないサービスを生成したい

3.4 Web連携

  • 01 JSONでWebサービスと連携したい
  • 02 RESTでWebサービスと連携したい
  • 03 JavaScript(HTML)とAndroid(Java)を連携させたい
  • 04 特定のWebページ専用のアプリケーションにしたい

3.5 マルチメディア

  • 01 アプリケーション間で音声の排他制御を行いたい
  • 02 インタラクティブに音を鳴らしたい

3.6 データ永続化

  • 01 SerializableとParcelableの使い分けを知りたい
  • 02 SQLiteの処理を高速化したい

3.7 その他

  • 01 アプリケーションのインストール,アンインストールを検知したい
  • 02 アンインストール時にSDカードに保存したデータも削除したい
  • 03 アプリケーション内でブロードキャストしたい
  • 04 一時的にアプリケーション一覧に表示しないようにしたい
  • 05 OutOfMemoryErrorをなんとか回避したい
  • 06 ANRの発生を抑えたい
  • 07 リフレクションを利用して非公開のAPIを使いたい
  • 08 ダミーのライブラリを利用して非公開のAPIを使いたい
  • 09 ベストプラクティスの実際の効果を知りたい

Chapter4 実戦の設計/テスト/運用

4.1 設計

  • 01 アクティビティ1つで画面数の多いアプリケーションを設計する際の注意点を知りたい
  • 02 アクティビティ間でデータを共有する方法を知りたい
  • 03 複数のアクティビティで共通の処理を,Template Methodパターンで実装したい
  • 04 複数のアクティビティで共通の処理を,委譲で実装したい
  • 05 複数のアクティビティで共通の処理を,Strategyパターンで実装したい
  • 06 複雑な画面遷移を構成する際のポイントを知りたい
  • 07 サーバーと通信するアプリケーションの非同期処理の方法を知りたい
  • 08 サーバーと通信するアプリケーションで遅延処理/一括処理を行いたい
  • 09 サーバーに端末を識別させる際の注意点を知りたい
  • 10 複数のプロダクトで共通の処理を,JARを活用して実装したい
  • 11 複数のプロダクトで共通の処理を,ライブラリプロジェクトを活用して実装したい
  • 12 プロジェクト分割での留意点を知りたい
  • 13 関連するアプリケーションのインストール状況をチェックしたい
  • 14 複数のアプリケーションパッケージでデータを共有したい
  • 15 アプリケーション間でリソースの固有化を実現したい
  • 16 端末ごとの差分を吸収したい
  • 17 定期処理の機能はどれを選べばよいか知りたい
  • 18 システムの情報としてどんなものが取得できるのか知りたい
  • 19 Androidの標準リソースを活用したい
  • 20 既存のJavaライブラリを活用できるか簡単に調査したい
  • 21 パスワードデータを扱う際の注意点を知りたい

4.2 テスト/デバッグ

  • 01 ユニットテストを実施したい
  • 02 GUIのテストを自動化したい
  • 03 GUIのランダムテスト(モンキーテスト)を実施したい
  • 04 テスト漏れを見つけたい/網羅率を証明したい
  • 05 位置情報を用いるアプリケーションをテストしたい
  • 06 Android SDKの中までデバッグしたい
  • 07 JNIをデバッグしたい
  • 08 処理のボトルネックを解析したい
  • 09 レスポンス低下の要因,UIスレッドでの実行を検出したい

4.3 運用/保守

  • 01 アプリケーションの利用状況を知りたい
  • 02 Google Analyticsを利用してアプリケーションのインストール経路を特定したい
  • 03 Google Analytics以外の方法でアプリケーションのインストール経路を特定したい
  • 04 クラッシュレポートを取得したい
  • 05 ソースコードを難読化したい
  • 06 アプリケーションのリバースエンジニアリングによる危険性を知りたい
  • 07 静的検査でアンチパターンを見つけたい
  • 08 動的なHTMLをWebViewに表示したい
  • 09 ソースコードの記述量を少なくしたい
  • 付属CD-ROMについて
  • あとがきにかえて