Download free for 30 days
Sign in
Upload
Language (EN)
Support
Business
Mobile
Social Media
Marketing
Technology
Art & Photos
Career
Design
Education
Presentations & Public Speaking
Government & Nonprofit
Healthcare
Internet
Law
Leadership & Management
Automotive
Engineering
Software
Recruiting & HR
Retail
Sales
Services
Science
Small Business & Entrepreneurship
Food
Environment
Economy & Finance
Data & Analytics
Investor Relations
Sports
Spiritual
News & Politics
Travel
Self Improvement
Real Estate
Entertainment & Humor
Health & Medicine
Devices & Hardware
Lifestyle
Change Language
Language
English
Español
Português
Français
Deutsche
Cancel
Save
Submit search
EN
Uploaded by
Yuki Higuchi
795 views
Android Lecture #02 @PRO&BSC Inc.
2012/03/07 に株式会社 PRO&BSC にて行った Android 研修の資料 #2 です。
Education
◦
Technology
◦
Read more
0
Save
Share
Embed
Embed presentation
Download
Download to read offline
1
/ 36
2
/ 36
3
/ 36
4
/ 36
5
/ 36
6
/ 36
7
/ 36
8
/ 36
9
/ 36
10
/ 36
11
/ 36
12
/ 36
13
/ 36
14
/ 36
15
/ 36
16
/ 36
17
/ 36
18
/ 36
19
/ 36
20
/ 36
21
/ 36
22
/ 36
23
/ 36
24
/ 36
25
/ 36
26
/ 36
27
/ 36
28
/ 36
29
/ 36
30
/ 36
31
/ 36
32
/ 36
33
/ 36
34
/ 36
35
/ 36
36
/ 36
More Related Content
PDF
AOZORAYOMITE and Intent
by
Yuki Higuchi
PDF
人狼知能プログラミング演習資料2015
by
Kosuke Shinoda
PDF
Programming24 第2回androidアプリ勉強会
by
codeal
PDF
BigDataの集め方
by
Mahito Ogura
PPTX
Aiwolf seminar 2019_ja
by
Takedaatsushi
PDF
Programming24 第3回Androidアプリ勉強会
by
codeal
PDF
モテたい...Watsonでモテる秘訣を...ディスカバリーしてみた:女性限定! クラウド勉強会 ~Watson&Node-REDでアプリ開発~
by
Yoshiki Hayama
PDF
[コデアル][Programming24]Androidアプリ勉強会01
by
codeal
AOZORAYOMITE and Intent
by
Yuki Higuchi
人狼知能プログラミング演習資料2015
by
Kosuke Shinoda
Programming24 第2回androidアプリ勉強会
by
codeal
BigDataの集め方
by
Mahito Ogura
Aiwolf seminar 2019_ja
by
Takedaatsushi
Programming24 第3回Androidアプリ勉強会
by
codeal
モテたい...Watsonでモテる秘訣を...ディスカバリーしてみた:女性限定! クラウド勉強会 ~Watson&Node-REDでアプリ開発~
by
Yoshiki Hayama
[コデアル][Programming24]Androidアプリ勉強会01
by
codeal
Viewers also liked
PDF
月間10億pvを支えるmongo db
by
Yuji Isobe
PDF
Succession “Losers”: What Happens to Executives Passed Over for the CEO Job?
by
Stanford GSB Corporate Governance Research Initiative
PDF
Android Lecture #04 @PRO&BSC Inc.
by
Yuki Higuchi
PDF
Android Lecture #01 @PRO&BSC Inc.
by
Yuki Higuchi
PDF
Android Lecture #03 @PRO&BSC Inc.
by
Yuki Higuchi
PDF
AozoraYomite @InfoTalk 2012/12/21
by
Yuki Higuchi
PDF
Programmer @jc-21 2014/03/29
by
Yuki Higuchi
PDF
カジュアルにMongo dbのbackup機能説明
by
Masakazu Matsushita
月間10億pvを支えるmongo db
by
Yuji Isobe
Succession “Losers”: What Happens to Executives Passed Over for the CEO Job?
by
Stanford GSB Corporate Governance Research Initiative
Android Lecture #04 @PRO&BSC Inc.
by
Yuki Higuchi
Android Lecture #01 @PRO&BSC Inc.
by
Yuki Higuchi
Android Lecture #03 @PRO&BSC Inc.
by
Yuki Higuchi
AozoraYomite @InfoTalk 2012/12/21
by
Yuki Higuchi
Programmer @jc-21 2014/03/29
by
Yuki Higuchi
カジュアルにMongo dbのbackup機能説明
by
Masakazu Matsushita
Similar to Android Lecture #02 @PRO&BSC Inc.
PDF
Android カスタムROMの作り方
by
Masahiro Hidaka
PDF
アプリリリース後に後悔しないための20のこと
by
leverages_event
PDF
Androidを利用した外部機器の制御
by
Takashi Kanamaru
PPT
スマホアプリ企画書
by
naotaro0123
PDF
Tokyo GTUG Bootcamp2010
by
Takashi EGAWA
PDF
冬だからAndroid再入門
by
Katsumi Honda
PDF
夜子まま塾講義10(画面の呼び出し)
by
Masafumi Terazono
PDF
Android4.2徹底解剖!
by
leverages_event
ODP
OSC2011 Androidハンズオン
by
Katsumi Honda
PDF
日本Androidの会 中国支部資料
by
Masafumi Terazono
PPTX
日本Androidの会のハンズオンセミナー資料(20130315)
by
eijikushida
ODP
はじめてのAndroid
by
hiro nemu
ODP
はじめてのAndroid in 高知
by
hiro nemu
PDF
iPhone アプリ開発の実例
by
Tokyo City University, Ueno Lab.
PPTX
Action Bar Compat読んでみた
by
Yukiya Nakagawa
PDF
Android Develop presentation on 19 Sep 2012.
by
Kazuaki Ueda
PPTX
初めてのAndroid開発
by
tanihiro
PDF
2012 6 6_ga_tracker_chinaminamoto_slideshare
by
China Minamoto
PDF
20120911アド部プレゼン資料
by
祐樹 糸賀
PDF
Androidのアプリケーションいろいろ
by
高見 知英
Android カスタムROMの作り方
by
Masahiro Hidaka
アプリリリース後に後悔しないための20のこと
by
leverages_event
Androidを利用した外部機器の制御
by
Takashi Kanamaru
スマホアプリ企画書
by
naotaro0123
Tokyo GTUG Bootcamp2010
by
Takashi EGAWA
冬だからAndroid再入門
by
Katsumi Honda
夜子まま塾講義10(画面の呼び出し)
by
Masafumi Terazono
Android4.2徹底解剖!
by
leverages_event
OSC2011 Androidハンズオン
by
Katsumi Honda
日本Androidの会 中国支部資料
by
Masafumi Terazono
日本Androidの会のハンズオンセミナー資料(20130315)
by
eijikushida
はじめてのAndroid
by
hiro nemu
はじめてのAndroid in 高知
by
hiro nemu
iPhone アプリ開発の実例
by
Tokyo City University, Ueno Lab.
Action Bar Compat読んでみた
by
Yukiya Nakagawa
Android Develop presentation on 19 Sep 2012.
by
Kazuaki Ueda
初めてのAndroid開発
by
tanihiro
2012 6 6_ga_tracker_chinaminamoto_slideshare
by
China Minamoto
20120911アド部プレゼン資料
by
祐樹 糸賀
Androidのアプリケーションいろいろ
by
高見 知英
Android Lecture #02 @PRO&BSC Inc.
1.
インテントと永続化 2012/03/07(水)@PRO&BSC
樋口 祐紀 (higuchi_yuki@probsc.jp)
2.
本日の内容 • 青空読手のご紹介 • どうやって作ってるの? •
マネタイズ • インテント • 永続化 • デバッグ方法 • 本日の課題 2
3.
青空読手のご紹介
4.
青空読手のご紹介① 作者一覧やランキングから選択 文庫の表示 もちろんしおり機能も
4
5.
青空読手のご紹介②
サイズ: 極大 + 太さ: 極太 サイズ: 極小 + 太さ: 極細 文字のサイズと太さの指定 5
6.
青空読手のご紹介③
SDカードや本体内の テキストの読み込みも可能 横向き表示にも対応 6
7.
mobile ASCII vol.5に 掲載!
2011/7/29発行 7
8.
ディベロッパーコンソール
端末 国 1 Samsung Galaxy S 10.00% (12,198) 1 日本 98.23% (119,826) 2 Sharp IS03 8.93% (10,890) 2 アメリカ合衆国 0.34% (420) 3 Fujitsu Toshiba REGZA Phone T01C 7.17% (8,752) 3 中国 0.31% (384) 4 SEMC Xperia Arco 6.09% (7,427) 4 大韓民国 0.20% (238) 5 Samsung Galaxy Tab 5.89% (7,190) 5 台湾 0.18% (220) 6 Samsung Galaxy S2 5.17% (6,306) 6 タイ 0.09% (112) 7 SEMC Xperia Arc 5.15% (6,282) 7 香港 0.09% (109) 8 SEMC Xperia X10 4.45% (5,432) 8 イギリス 0.07% (83) 9 SEMC Experia Acro 2.62% (3,194) 9 オーストラリア 0.06% (71) 10 その他 44.52% (54,312) 10 その他 0.43% (520) 8
9.
どうやって作ってるの?
10.
どうやって作ってるの!?①
• データは青空文庫サイト *1 から zipファイルをDL後、解凍 – 500文庫分のzipファイルへのリン クを保持 • フォントは「IPA明朝」をダウン ロードして利用 • SurfaceViewで頑張って描画 – (背景+本文+ルビ+タイトル +ページ数)x 2 *1 … http://www.aozora.gr.jp/ 10
11.
どうやって作ってるの!?② • Twitterによるつぶやき
11
12.
どうやって作ってるの!?③ • Twitterへのつぶやき投稿はこんなにかんたん! final
String msg = " 『坊っちゃん』なう #aozorayomite"; final Uri uri = Uri.parse( http://twitter.com/home/?status= + URLEncoder.encode(msg, "UTF-8")); final Intent intent = new Intent(Intent.ACTION_VIEW, uri); startActivity(intent); 12
13.
ちなみに、メールの場合はこんな感じ Intent intent =
new Intent(); // アクションとデータタイプを指定 intent.setAction(Intent.ACTION_SEND); intent.setType("message/rfc822"); // TO、CC、BCC、件名、本文を順に指定 intent.putExtra(Intent.EXTRA_EMAIL, new String[] { "foo@example.com" }); intent.putExtra(Intent.EXTRA_CC, new String[] { "cc@example.com" }); intent.putExtra(Intent.EXTRA_BCC, new String[] { "bcc@example.com" }); intent.putExtra(Intent.EXTRA_SUBJECT, "件名"); intent.putExtra(Intent.EXTRA_TEXT, "本文の内容"); // Intent を発行 startActivity(intent); 13
14.
どうやって作ってるの!?④
def get_or_post(self): pdev = self.request.get('dev').encode('utf-8') pos = self.request.get('os').encode('utf-8') pver = self.request.get('ver').encode('utf-8') ptitle = self.request.get('title').encode('utf-8') pbug = self.request.get('bug').encode('utf-8') report = "dev: " + pdev + "¥n" report += "os: " + pos + "¥n" report += "ver: " + pver + "¥n" report += "title: " + ptitle + "¥n" report += "bug: " + pbug mail.send_mail( sender='hyukix@gmail.com', to='hyukix@gmail.com', subject='Bug Report - AozoraYomite', body=report) 【参考サイト】throw Life - Androidアプリのバグ報告システムを考える http://www.adamrocker.com/blog/288/bug-report-system-for-android.html 14
15.
どうやって作ってるの!?⑤ • 青空プロバイダとの連携機能
15
16.
マネタイズ
17.
マネタイズとはなんぞや? 出典:マネタイズ【monetize】の意味 - 国語辞書
- goo辞書 http://goo.gl/RRI8 17
18.
突然ですがクイズです • 青空読手のユーザの 3%
が ¥210- で 購入してくれていたとすると、これまでに私 の懐にいくら入っていたでしょう? A. ¥10,000- B. ¥100,000- C. ¥1,000,000- D. もっと稼げる。そう、iPhone ならね 18
19.
実はけっこう稼げるAndroid!? 230,000 (ユーザ) ×
3% (購入割合) × ¥210- × 70% (開発者の取り分) = ¥1,014,300- 19
20.
Android有料アプリは苦戦中... • そこで広告!Androidでは AdMob
がメジャー 20
21.
DL 数が伸びないことには...
① ② ③ ① アンドロイダー レビュー記事 ② アンドロイダー 青空文庫比較記事 ③ au one market 登録 21
22.
昨年度末の盛り上がり!
22
23.
インテント
24.
インテントって何? •
処理依頼メッセージのこと – 例: AK Notepadによる他アプリ機能 AK Notepadにてテキ ACTION_SEND イ ン Twidroidにペーストさ ストを入力。メニューから テ ン トが発行 さ れ 、 対 れる。ポイントは相互連 Shareを指定すると… 応アプリがリストアップ 携を前提としてない点 出典:使って分かったAndroidとiPhoneの違い http://goo.gl/5nGc 24
25.
Extra Data IntentとExtraData
– – EXTRA_ALARM_COUNT EXTRA_BCC Activity Actions Broadcast Actions – EXTRA_CC – ACTION_MAIN – ACTION_TIME_TICK – EXTRA_CHANGED_COMPONENT_NAME – ACTION_VIEW – ACTION_TIME_CHANGED – EXTRA_DATA_REMOVED – ACTION_ATTACH_DATA – ACTION_TIMEZONE_CHANGED – EXTRA_DOCK_STATE – ACTION_EDIT – ACTION_BOOT_COMPLETED – EXTRA_DOCK_STATE_CAR – ACTION_PICK – ACTION_PACKAGE_ADDED – EXTRA_DOCK_STATE_DESK – ACTION_CHOOSER – ACTION_PACKAGE_CHANGED – EXTRA_DOCK_STATE_UNDOCKED – ACTION_GET_CONTENT – ACTION_PACKAGE_REMOVED – EXTRA_DONT_KILL_APP – ACTION_DIAL – ACTION_PACKAGE_RESTARTED – EXTRA_EMAIL – ACTION_CALL – ACTION_PACKAGE_DATA_CLEA – EXTRA_INITIAL_INTENTS – ACTION_SEND RED – EXTRA_INTENT – ACTION_SENDTO – ACTION_UID_REMOVED – EXTRA_KEY_EVENT – ACTION_ANSWER – ACTION_BATTERY_CHANGED – EXTRA_PHONE_NUMBER – ACTION_INSERT – ACTION_POWER_CONNECTED – EXTRA_REMOTE_INTENT_TOKEN – ACTION_DELETE – ACTION_POWER_DISCONNECT – EXTRA_REPLACING ACTION_RUN ED – – EXTRA_SHORTCUT_ICON ACTION_SYNC – ACTION_SHUTDOWN – – EXTRA_SHORTCUT_ICON_RESOURCE – ACTION_PICK_ACTIVITY – EXTRA_SHORTCUT_INTENT – ACTION_SEARCH – EXTRA_STREAM – ACTION_WEB_SEARCH – EXTRA_SHORTCUT_NAME – ACTION_FACTORY_TEST – EXTRA_SUBJECT // インテントによるブラウザ起動の例 – EXTRA_TEMPLATE Uri uri = Uri.parse("http://probsc.jp"); – EXTRA_TEXT Intent intent = new Intent(Intent.ACTION_VIEW, uri); – EXTRA_TITLE startActivity(intent); – EXTRA_UID 25
26.
画面遷移もインテントで実施① <?xml version="1.0" encoding="utf-8"?>
サブ画面のレイアウト: <LinearLayout res/layout/sub.xml xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="fill_parent" android:orientation="vertical" > <TextView android:id="@+id/txtMessage" android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="this is sub activity !!" /> <Button android:id="@+id/btnFinish" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="center_horizontal" android:text="finish" /> </LinearLayout> 26
27.
画面遷移もインテントで実施② import
android.app.Activity; サブ画面のActivity: import android.os.Bundle; src/SubActivity.java import android.view.View; import android.view.View.OnClickListener; import android.widget.Button; public class SubActivity extends Activity { public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.sub); Button btnFinish = (Button)findViewById(R.id.btnFinish); btnFinish.setOnClickListener(new OnClickListener() { public void onClick(View v) { SubActivity.this.finish(); } }); } } 27
28.
画面遷移もインテントで実施③ ・・・
AndroidManifest.xml (一部抜粋) <application android:icon="@drawable/icon" android:label="@string/app_name" > <activity android:name=".MainActivity" android:label="@string/app_name" > <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> <activity android:name=".SubActivity" /> </application> ・・・ メイン画面のActivity: src/MainActivity.java (一部抜粋) Intent intent = new Intent(MainActivity.this, SubActivity.class); startActivity(intent); 28
29.
永続化
30.
携帯電話では頻繁に要永続化 • 他アプリ起動、着呼、バッテリー切れ等々、様々
な要因によりアプリが終了させられます。 ⇒ 頻繁に永続化しないと状態を喪失する • Androidの永続化方法 1) 共有プリファレンス(XMLによるハッシュマップ) 2) 内部保存領域 3) 外部保存領域 4) SQLite データベース 5) ネットワーク上のストレージ 30
31.
共有プリファレンスの保存 // インスタンス取得 SharedPreferences pre
= PreferenceManager.getDefaultSharedPreferences(this); // エディタ取得 SharedPreferences.Editor editor = pre.edit(); // 値を書き込み editor.putString("key_text", "test"); editor.putInt("key_int", 1); editor.putLong("key_long", (long)1.1); editor.putFloat("key_float", (float)1.1); editor.putBoolean("key_bool", true); // editor.clear(); // すべての設定を削除 // 保存 editor.commit(); 31
32.
共有プリファレンスの読み出し SharedPreferences pre =
PreferenceManager.getDefaultSharedPreferences(this); /* // 名前付きプリファレンスの取得 SharedPreferences pre = getSharedPreferences("pre_key_01", MODE_PRIVATE); */ String strVal = pre.getString("key_text", "none"); int intVal = pre.getInt("key_int", 0); long longVal = pre.getLong("key_long", (long)0.0); float floatVal = pre.getFloat("key_float", (float)0.0); boolean boolVal = pre.getBoolean("key_bool", false); 32
33.
デバッグ方法
34.
LogCat の使い方
[ウィンドウ(W)] – [ビューの 表示(V)] – [LogCat] で 下部に「LogCat」ビューが追加 Log.e("error label", "error msg"); Log.w("warning label", "warning msg"); Log.i("info label", "info msg"); Log.d("debug label", "debug msg"); Log.v("verbose label", "verbose msg"); 34
35.
AlertDialog の使い方 AlertDialog.Builder builder
= new AlertDialog.Builder(this); builder.setTitle("title"); builder.setMessage("message"); builder.setPositiveButton("OK", new DialogInterface.OnClickListener() { public void onClick(DialogInterface dialog, int which) { Toast.makeText(getApplicationContext(), "OK Clicked!!", Toast.LENGTH_LONG).show(); } }); builder.setNegativeButton("No", null); AlertDialog dialog = builder.create(); dialog.show(); 35
36.
本日の課題 • じゃんけんゲームの作成 –
「グー」「チョキ」「パー」のボタンを押した際に、ランダム でアプリ側も手を出し、詳細を決める – 10回中、何回勝つかを競うゲーム – 最高得点と履歴を永続化して保持 – 最高得点はメイン画面に、履歴はサブ画面に表示 – 最高得点をとった際にtwitter / メールで周知できる – 上記の他に1つ独自機能を追加 36
Download