• Like
  • Save
Android Lecture #01 @PRO&BSC Inc.
Upcoming SlideShare
Loading in...5
×
 

Android Lecture #01 @PRO&BSC Inc.

on

  • 1,696 views

2012/01/25 に株式会社 PRO&BSC にて行った Android 研修の資料 #1 です。

2012/01/25 に株式会社 PRO&BSC にて行った Android 研修の資料 #1 です。

Statistics

Views

Total Views
1,696
Views on SlideShare
1,696
Embed Views
0

Actions

Likes
0
Downloads
6
Comments
0

0 Embeds 0

No embeds

Accessibility

Categories

Upload Details

Uploaded via as Adobe PDF

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

    Android Lecture #01 @PRO&BSC Inc. Android Lecture #01 @PRO&BSC Inc. Presentation Transcript

    • Androidの魅力と開発 2012/01/25(水)@PRO&BSC 樋口 祐紀 (higuchi_yuki@probsc.jp)
    • 突然ですがクイズです• Twitter / Evernote / メールを利用し、 任意の文字列を送信するAndroidアプ リを作るのに必要な時間は? A. 3分 B. 3時間 C. 3日 D. Androidでは無理... だけど... 3秒でできるよ。そう、iPhoneならね 2
    • これだけ書けば解決!public class Test extends Activity { /** Called when the activity is first created. */ public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); new AlertDialog.Builder(this).setMessage("Start activity ?") .setPositiveButton("Yes", new DialogInterface.OnClickListener() { public void onClick(DialogInterface dialog, int whichButton) { Intent intent = new Intent(Intent.ACTION_SEND); intent.setType("text/plain"); intent.putExtra(Intent.EXTRA_TEXT, "Hello, Android!!"); startActivity(intent); } }).setNegativeButton("No", null).show(); }} 3
    • This is Android!! Evernote IMoNi twicca 4
    • Androidの今後
    • Android x Arduino• Arduino(アルドゥイーノ) – AVRマイコン、入出力ポートを備えた基板、C言語風のArduino言語とそれの 統合開発環境から構成されるシステム。Arduino はスタンドアロン型のインタラ クティブデバイス開発だけでなく、ホストコンピュータ上のソフトウェア(例えば、 Adobe Flash、Processing、Max/MSP、Pure Data、SuperCollider) で制御することもできる。 6
    • Sony Internet TV「世界初のGoogle TV搭載 HDテレビ」中身は… 家電用Atomプロセッサ, Android2.1, Flash10.1対応Chromeブラウザ、Google TVソフトウェア出典: ソニー、Google TV搭載テレビをデモ-engadget http://goo.gl/K4Fl 「閉鎖的なテレビWebをオープンに」-ITmediaNews http://goo.gl/gns4 7
    • こんなテーマでAndroidを紹介します1. Android って何?2. Android vs iPhone3. 実際の開発は?4. A3 8
    • 1. Android って何?
    • 様々なAndroid端末Xperia Galaxy S Desire nook Streak IS01 / LYNX dynabook AZ 10
    • Android って何? 【競合製品】 iPhone OS (iOS) / Symbian OS• Androidとは… / BlackBerry / WindowsPhone7 / webOS – Google/docomo/Intel等、携帯電話会社や端 末メーカーが加盟する「Open Handset Alliance」 が発表した携帯電話用ソフトウェアプラットフォーム• 結局のところ… – LinuxベースOS + ミドルウェア (+ UI) • Linux 2.6カーネルがベースに、 各種ライブラリをミドルウェアとして備える – Javaを使ってアプリ開発が可能 • SDK同梱エミュレータにて動作確認 • 実機を接続すれば実機デバッグも可能 11
    • Androidのアーキテクチャ アプリケーション Contacts Phone Browser Your Home (アドレス帳) (電話) (ブラウザ) Application!!SDK アプリケーションフレームワーク開発 アクティビティ ウィンドウ コンテンツ ビューシステム 通知 マネージャ マネージャ プロバイダ マネージャ パッケージ 電話 リソース 位置 センサー マネージャ マネージャ マネージャ マネージャ マネージャ ライブラリ Androidランタイム サーフェイス メディア SQLite コアライブラリ マネージャ フレームワークNDK Dalvik開発 OpenGL | ES FreeType WebKit 仮想マシン SGL SSL libc Linuxカーネル ディスプレイ Bluetooth フラッシュメモリ バインダ(IPC) カメラドライバ ドライバ ドライバ ドライバ ドライバ キーパッド オーディオ USBドライバ WiFiドライバ 電源管理 ドライバ ドライバ 12
    • 2.Android vs iPhone UI / アプリ連携 / データ共有 / Market / マルチタスク処理 / バッググラウンド処理
    • Android vs iPhone 1/3• UIの滑らかさはiPhoneが格段に上 – iPhoneアプリのネイティブコードによる恩恵か? • iPhoneアプリの開発、実行環境が限定されるデメリットも • Android 2.2はJITコンパイラを搭載し、高速化へ• Androidの先進的なアプリ連携 – 例: メモ帳アプリによるメモ内容の他アプリ連携 • iPhoneでは共有するための機能を明示的に呼び出し • Androidでは「インテント」により処理を依頼 14
    • Android vs iPhone 2/3• Androidではアプリ間データ共有が容易 – 「コンテンツプロバイダ」により、SQLiteで保存したデー タを他アプリから(ユーザの承認に基づき)利用可能 • 例: アドレス帳はコンタクト情報のコンテントプロバイダとなっ ており、他アプリから利用可能• 自由なAndroid Market – iPhoneの厳しい審査と比べると、ほとんど「何でもあ りの自己責任」 – システムを破壊するようなマルウェア相当の作成は パーミッション保護により困難なものの、情報が盗まれ る可能性は十分あり 15
    • Android vs iPhone 3/3• Androidはマルチタスク処理が可能 – Androidアプリは別アプリに画面を奪われても動き続 けることができるため、複数のアプリケーションを起動し た場合でも、それらの切り替えが瞬時に可能• Androidはバックグランド処理も可能 – 例: Android Marketからアプリをダウンロードしなが ら別のアプリを探す – 例: Twitterクライアントをバックグランドで起動してお き、ダイレクトメッセージをバイブ&ポップアップ表示 16
    • Android アプリの実体である「Activity」クラスの複雑な状態遷移 起動 ① onCreate() ③ onRestoreInstanceState() ② onStart() ④ onResume() ③ onResume() ② onStart() 実行中 ① onSaveInstanceState() ② onPause()① onRestart() onResume() 終了 一時停止 ① onSaveInstanceState() ② onStop() onDestroy() または<Process killed> 破棄済み <Process killed> 17
    • 3. 実際の開発は?
    • 「HelloWorld」書いてみよう!!0/3• 開発環境 整備Tips – http://bit.ly/y5IrM3 (1.8MB) 19
    • 「HelloWorld」書いてみよう!!1/4 20
    • 「HelloWorld」書いてみよう!!2/4 21
    • 「HelloWorld」書いてみよう!!3/4package jp.probsc.higuchi_yuki.hello;import android.app.Activity;import android.app.AlertDialog;import android.os.Bundle;public class Hello extends Activity { /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); // ダイアログの表示 new AlertDialog.Builder(this) .setMessage("Hello, World!!") .setPositiveButton("OK", null) .show(); }} 22
    • 「HelloWorld」書いてみよう!!4/4<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="fill_parent" android:layout_height="fill_parent"> <LinearLayout android:orientation="horizontal" android:layout_width="fill_parent" android:layout_height="wrap_content"> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="text:" /> <EditText android:id="@+id/editText" android:layout_width="120dp" android:layout_height="wrap_content" /> </LinearLayout> main.xml <TableLayout android:layout_width="fill_parent" android:layout_height="wrap_content"> <TableRow> <Button android:id="@+id/btn01" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="1" /> ... 23
    • package jp.probsc.higuchi_yuki.button;import android.app.Activity;import android.os.Bundle;import android.view.View;import android.view.View.OnClickListener;import android.widget.Button;import android.widget.EditText;import android.widget.Toast;public class MainActivity extends Activity { /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); final EditText editText = (EditText)findViewById(R.id.editText); Button btn01 = (Button)findViewById(R.id.btn01); btn01.setOnClickListener(new OnClickListener() { public void onClick(View v) { Toast.makeText(MainActivity.this, editText.getText().toString(), Toast.LENGTH_LONG).show(); } }); } MainActivity.java} 24
    • 野良アプリをインストールしよう1 野良アプリを配布できるのも Androidの大きな魅力http://bit.ly/c7vhwT (15KB) 25
    • 野良アプリをインストールしよう2 インストールはこちら:http://bit.ly/uNd2eg (25KB) 26
    • 4. A3
    • スケジュールエントリー期間(全部門) 2011/12下旬~2012/03/11アプリ提出期限 2012/03/14結果発表、表彰式 2012/04(予定) 28