About me! 足立昌彦 / +Masahiko.Adachi )! バイドゥ株式会社技術顧問 (Simeji)! 株式会社カブク Co-Founder! Google Developer Expert (Android)

Similar documents
Android osの歴史 1.6から2.3まで携帯のみ 3.0 タブレットのみ 4.0 タブレットで培ったUIなど の技術を携帯でも 使えるとうにと APIなんかが統合された

1: Preference Display 1 package sample. pref ; 2 3 import android. app. Activity ; 4 import android. content. Intent ; 5 import android. content. Shar

Microsoft Word - Android_SQLite講座_画面800×1280


android2.indd

テーブルの確認 sqlite>.tables.tables コマンドでデータベース内のテーブル一覧を表示する テーブルスキーマの表示 sqlite>.schema mytable.schema コマンドで指定のテーブルのスキーマを表示できる テーブル出力の整形.explain コマンドを使うと テー

Microsoft Word - A05_AndroidプログラミングJUMP_画面800×1280

第1章 ビジュアルプログラミング入門

Prog2_9th

日 力力 生 行行 入 入 力力 生 用 方

10/ / /30 3. ( ) 11/ 6 4. UNIX + C socket 11/13 5. ( ) C 11/20 6. http, CGI Perl 11/27 7. ( ) Perl 12/ 4 8. Windows Winsock 12/11 9. JAV

JAVA とテンプレート

Another Activity オブジェクトは生成されてもいないのである これは 後述の onpause メソッ ドの説明からも明らかである 翻訳 : A の onpause から返ってこない限り B は create されない ため ここで長い処理は行ってはならない 実際にトレースをおこなってみ

Microsoft PowerPoint ppt

1: Android 2 Android 2.1 Android 4 Activity Android Service ContentProvider BroadcastReceiver Activity ( ): Android 1 Android Service ( ): ContentProv

た場合クラスを用いて 以下のように書くことが出来る ( 教科書 p.270) プログラム例 2( ソースファイル名 :Chap08/AccountTester.java) // 銀行口座クラスとそれをテストするクラス第 1 版 // 銀行口座クラス class Account String name

非推奨メソッド等の掲載について

Javaセキュアコーディングセミナー2013東京第1回 演習の解説

「Android Studioではじめる 簡単Androidアプリ開発」正誤表

Microsoft Word - Android_SQLite講座_画面800×1280

Microsoft Word - _Intent.doc

Java演習(4) -- 変数と型 --

Taro-twokansu3.jtd

新・明解Java入門

: : : TSTank 2

Hello, Android

セキュアコーディングガイド最新版の紹介 JSSEC セキュアコーディングワーキンググループ

Android でサービスしよう! 日本 Android の会 2 月 21 日大阪セミナ- 有山圭二 ( 有限会社シーリス )

intra-mart Accel Platform — イベントナビゲータ 開発ガイド   初版   None

プログラミング基礎I(再)

PowerPoint プレゼンテーション

補足資料 インテントによるアプリケーションとアクティビティの呼出し Android アプリのキモとなるインテントとは何? インテント ( 呼び出し要求 ) とは Android 独自の機能です 簡単にいえばアプリケーションや他のアクティビティを呼び出す機能ですが 他のアプリケーションを機能や扱えるデ

解答上の注意 1 解答は 解答 紙の問題番号に対応した解答欄にマークしなさい 2 選択肢は 問ごとに 意されています 問 1の選択肢は 問 2で使 しません 3 選択肢は量が多いため 探しやすさの観点よりグループ分けされています グループ分けに合わせて解答欄が区切られていますが 横 1 列で問題 1

mazec テクニカルガイド第5版(Android版)

Java の ConcurrentHashMap における同期化 バッドケースとその対処法 2013 年 9 月湊隆行 1. はじめに表 1.1 に示すように Java の Collections Framework には 3 つの世代があります バージョン 1.0 から存在するレガシー API バ

(Microsoft PowerPoint - ClickFramework.ppt [\214\335\212\267\203\202\201[\203h])

PowerPoint プレゼンテーション

intra-mart Accel Platform — イベントナビゲータ 開発ガイド   初版  

Prog2_6th

GEC-Java

K227 Java 2

そして 取得した OutputStream インスタンスを使い 文字コードは UTF-8 として PrintWriter インスタンスを生成して あとは PrintWriter.append() で書き込みたい文字 列を渡して close() で保存する というだけです ファイルの読込み方法 それで

JavaプログラミングⅠ

補足資料 キーイベント処理サンプル package jp.co.keyevent; import android.app.activity; import android.os.bundle; import android.view.keyevent; import android.widget.t

Microsoft Word - Android_DI講座_画面800×1280

ASP.NET 5 Web 開発 ~ フレームワーク編 ~

目的 泡立ち法を例に Comparableインターフェイスの実装 抽象クラスの利用 型パラメタの利用 比較 入替 の回数を計測

PowerPoint プレゼンテーション

2 // TODO Auto-generated method stub float x = event.getx(); float y = event.gety(); String action = ""; switch(event.getaction()) { case MotionEvent.

やさしいJavaプログラミング -Great Ideas for Java Programming サンプルPDF

JavaプログラミングⅠ

tkk0408nari

// このクラスの有効期間中の各呼び出しに使用される キャッシュされた Socket オブジェクト Socket socket = null; // 非同期処理が完了したことを通知するために信号を送るオブジェクト static ManualResetEvent clientdone = new Ma

Prog1_15th

Taro-korattsu.jtd

Java講座

Prog2_6th

Java - Visual Editor

Microsoft Word - Android_DI講座_画面800×1280

とても使いやすい Boost の serialization

ファイルを直接編集する画面を切り替えることができる. 図 3 標準のレイアウトを削除する (2) グラフィカル レイアウト画面で LinearLayout(Vertical) を追加するパレットウィンドウの レイアウト の中にある LinearLayout(Vertical) をドラッグして, 編集

WebOTXマニュアル

Vuzix M100 SDKインストールガイド

intra-mart Accel Platform — IM-Repository拡張プログラミングガイド   初版  

日本アンドロイドの会 四国支部 Kickoff ミーティング in ABC2009

Prog2_10th

intra-mart WebPlatform/AppFramework

文字列操作と正規表現

WiFiによる位置情報サービスとスマートフォンによる実装

Javaセキュアコーディングセミナー東京 第2回 数値データの取扱いと入力値の検証 演習解説

アプリ内課金SDK 利用マニュアル

ガイダンス

JAVA入門

DEMO1 まずはやってみよう アクティビティをダブルクリック 作成 - プロジェクト C# => Workflow CodeActivity をぽとぺ シーケンシャルと ステートマシン それぞれのコ ンソールアプリ あとライブラリがある びっくりマークは足りていないあかし プロパティをみると判別で

JavaプログラミングⅠ

PowerPoint プレゼンテーション

Prog2_10th

マルチ OS エンジンを使用した固定記憶域の操作 (テクノロジー・プレビュー) - パート 1

Microsoft Word - NonGenTree.doc

Exam : 1z1-809-JPN Title : Java SE 8 Programmer II Vendor : Oracle Version : DEMO Get Latest & Valid 1z1-809-JPN Exam's Question and Answers 1 from Ac

. IDE JIVE[1][] Eclipse Java ( 1) Java Platform Debugger Architecture [5] 3. Eclipse GUI JIVE 3.1 Eclipse ( ) 1 JIVE Java [3] IDE c 016 Information Pr

PowerPoint プレゼンテーション

「RAD Studio XE5によるマルチ言語/マルチデバイス開発の進め方」

226

intra-mart Accel Platform — IM-BloomMaker プログラミングガイド   初版  

ガイダンス

11 ソフトウェア工学 Software Engineering デザインパターン DESIGN PATTERNS デザインパターンとは? デザインパターン 過去のソフトウェア設計者が生み出したオブジェクト指向設計に関して, ノウハウを蓄積し 名前をつけ 再利用しやすいようにカタログ化したもの 各デ

CodeGear Developer Camp

ただし 無作為にスレッドを複数実行すると 結果不正やデッドロックが起きる可能性がある 複数のスレッド ( マルチスレッド ) を安全に実行する ( スレッドセーフにする ) ためには 同期処理を用いるこ とが必要になる 同期処理は 予約語 synchronized で行うことができる ここでは sy

スライド 1

Android プログラム ガイド

Android Layout SDK プログラミング マニュアル

Thread

MEN'S

表示の更新もそういた作業のひとつに当たる スレッドの使用アニメーション アニメーションやシミュレーションなどは画面の更新が一定のタイミングで行われていく この連続した画面の更新をスレッドを利用して行う しかし paint() メソッドを直接呼び出して表示を更新することはできない その理由

WTM2019SingleSignOn

SpringSecurity

JAVA入門

Prog2_5th

人工知能入門

Transcription:

Discover Support Library Masahiko Adachi @adamrokcer / +Masahiko.Adachi 28 th Sep, 2013

About me! 足立昌彦 ( @adamrocker / +Masahiko.Adachi )! バイドゥ株式会社技術顧問 (Simeji)! 株式会社カブク Co-Founder! Google Developer Expert (Android)

便利なライブラリを紹介! Support Library の一部! Google Under Ground なライブラリ

Support Library とは?

なぜ Support Library?! AndroidのSDKはどんどん進化している! 今やr22.2.1! 古いSDKを救うのがSupport Library! バックポートすべきはどんなクラス?! 必要 or 便利なクラス つまり 効率よく新 SDKをチェックできる

Support Library の種類 v4 (API Level 4) - Android1.6 v7 (API Level 7) - Android2.1.x v8 (API Level 8) - Android2.2.x - v13 (API Level 13) - Android3.2 15 packages 104 classes 7 packages 42 classes 1 package 51 classes 1 package 4 classes

android-support-v4.jar

NavUtils と TaskStackBuilder android-support-v4.jar! Task の Back Stack を制御する! Android のページ遷移をデザインする

Android のページ遷移 android-support-v4.jar

特殊な Back Stack android-support-v4.jar

特殊なページ遷移 android-support-v4.jar

android-support-v4.jar NavUtils と TaskStackBuilder NavUtils#navigateUpTo( srcactivity, upintent ) Back Stack 内で指定した Activity を起動 TaskStackbuilder#addNextIntent( nextintent ) TaskStackBuilder#startActivities( bundle ) addnextintent() メソッドでBack Stackを構築して startactivities() メソッドでTopのActivityを起動

android-support-v4.jar AsyncTaskLoader! 非同期でデータがロードできる! Android3.0と同じFrameworkをわざわざSupport Libraryに実装! AsyncTaskとの違いはコンテンツの更新管理機能

android-support-v4.jar AsyncTaskLoader public Loader<Cursor> oncreateloader(int id, Bundle args) { return new CursorLoader(this, Contract.TABLE1.contentUri, null, null, null, null); } コンテンツが更新されると自動で呼び出される public void onloadfinished(loader<cursor> loader, Cursor c) { c.movetofirst(); do { for (int i = 0; i < c.getcolumncount(); i++) { String v = c.getstring( i ); } } while (c.movetonext()); }

android-support-v4.jar LocalBroadcastManager! アプリ内で閉じた Broadcast Intent が発行できる! 他のアプリがデータを受け取ることがないので Activity を疎結合させたままセキュアなデータ通信ができる LocalBroadcastManager.getInstance(context).sendBroadcast(intent);

android-support-v4.jar SparseArray! API Level 1 から存在する SparseArray の拡張! LongSparseArray なども使える! SQLite の _ID が Long なので キャッシュに効果大! Hashmap のように使えるが性能は絶大に良い Key 値が Primitive なのでオブジェクトを作らずメモリ効率も高いので絶必! SparseArray<String> map = new SparseArray<String>(); map.put( 11, eleven ); map.delete( 11 );

android-support-v4.jar DrawerLayout! 憧れの Drawer ナビゲーションを実装できる

android-support-v4.jar DrawerLayout getactionbar().setdisplayhomeasupenabled(true); getactionbar().sethomebuttonenabled(true); drawertoggle = new ActionBarDrawerToggle( this, mdrawerlayout, R.drawable.icon, R.string.open_label, R.string.close_lable); mdrawerlayout.setdrawerlistener(drawertoggle);

おまけ :simple-side-drawer protected void oncreate(bundle data) { super.oncreate( data ); setcontentview( R.layout.main ); } mside = new SimpleSideDrawer( this ); mside.setleftbehindcontentview( R.layout.behind_menu_left ); https://github.com/adamrocker/simple-side-drawer

android-support-v4.jar SlidingPaneLayout! マルチペインのメニューが作れる! 画面が大きい時はメニューも自動で表示される

android-support-v7.jar

android-support-v7.jar ActionBar! ActionBar が Android 2.1 にキター! class ActionActivity extends ActionBarActivity { } /res/values/styles.xml <style name= AppBaseTheme parent= Theme.ActionCompat >

Volley

What s Volley volley

volley What s Volley 簡単で速い非同期 HTTP 通信ライブラリ実は Google Play アプリも使ってるらしい

volley 例 : 大量に通信する 最近良く見かける Time Line 型のアプリとか

volley AsyncTask との違い! AsyncTaskよりシンプル! Viewとの連携でより簡単! 通信まわりの実装が限りなく隠蔽されている! Androidのバグも回避してくれるw

Volley 実装例 volley

Volley 実装例 volley

Volley で画像の取得と表示 volley

volley Volley の実装 とてもシンプル

volley Volley のいいところ! 通信順序を入れ替えられる! キャッシュできる キャッシュアルゴリズムも変更できる! HttpClient と HttpUrlConnection のバグを回避してくれる! 通信のデバッグが簡単 adb shell setprop log.tag.volley VERBOSE

volley Volley のはじめ方! Git の Volley プロジェクトを Clone! Volley のコードを自分のプロジェクトに Import! Volley.newRequestQueue( context ); git clone https://android.googlesource.com/platform/frameworks/volley サンプルアプリつくりました https://github.com/adamrocker/volley

more And more! 世界ライブラリランキング! AppBrain http://www.appbrain.com/stats/libraries/dev

まとめ! NavUtilsとTaskStackBuilderでPage Navigationをデザイン! AsyncTaskLoaderで非同期データアクセス! LocalBroadcastManagerでアプリ内で暗黙のIntent! SparseArrayで高速 軽量 Hashmap! DrawerLayoutで憧れのDrawer Navigation! Android 2.1からでも簡単にActionBar! Volleyで超簡単に大量の非同期 HTTP 通信

Thank you Discover Support Library Masahiko Adachi @adamrokcer / +Masahiko.Adachi 28 th Sep, 2013