liguofeng29’s blog

個人勉強用ブログだっす。

Android

Androidのweb開発 - HttpClient

Androidで保護されているwebリソースにアクセス際にはsession、cookieなどを使う場合には、HttpClientを利用する 使用流れ HttpClientオブジェクト生成 メソッド生成 GETの場合、HttpGet POSTの場合、HttpPost setParams(HttpParams params)でリクエストパラ…

Androidのweb開発 - HttpURLConnectionでマルチスレッドファイルダウンロード

HttpURLConnectionはURLConnectionのサブクラスである。 拡張されているメソッド int getResponseCode() String getResponseMessage() String getRequestMethod() void setRequestMethod() マルチスレッドでイメージダウンロードサンプルコード ①ダウンロー…

Androidのweb開発 - URLConnectionでリクエストを投げる

URLでリクエストを投げ、データを取得できる。 手順 URLオブジェクトのopenConnectionメソッドでURLConnectionオブジェクトを取得する URLConnectionのパラメータと属性?を設置得する リクエスト GET : connectメソッドで送信する POST:URLConnectionオブジ…

Androidのweb開発 - URLを使いwebリソースにアクセスする

URL(Uniform Resource Locator) 形式: protocol://host:port/resourceName サンプルコード URLを使いwebのイメージを取得し、Androidアプリに表示する。 ① AndroidManifest.xml <uses-permission android:name="android.permission.INTERNET"/> ② activity_main.xml </uses-permission>

Androidのweb開発 - socket通信

Socket通信の概要 サーバ ServerSocket(int port) ServerSocket(int port, int backlog) ServerSocket(int port, int backlog, InetAddress localAddr) クライアント Socket(InetAddress/String remoteAddress, int port) Socket(InetAddress/String remoteA…

AndroidのResource - ほか諸々

Androidのリソースに含まれるもの。 1. オリジナルXML @[<package_name>:]xml/file_name [<package_name>.]R.xml.<file_name> XmlResourceParser getXml(int id) InputStream openRawResource(int id) 2. Layoutリソース XMLを使い画面レイアウトを定義する 3. Menuリソース XMLを使いメニューを定義</file_name></package_name></package_name>…

AndroidのResource - Property Animation

Animatorは抽象クラスであり、通常はそのサブクラスを使用する。 サブクラス AnimatorSet ValueAnimator ObjectAnimator TimeAnimator ルート要素 <set.../> <objectAnimator.../> <animator.../> サンプルコード ① color_anim.xml </animator.../></objectanimator.../></set.../>

AndroidのResource - ClipDrawableサンプルコード

① my_clip.xml <clip xmlns:android="http://schemas.android.com/apk/res/android" android:drawable="@drawable/skytree" android:clipOrientation="horizontal" android:gravity="center"> </clip> ② activity_main2.xml

AndroidのResource - Drawableリソースサンプルコード

① StateListDrawableリソース <selector xmlns:android="http://schemas.android.com/apk/res/android"> <item android:drawable="@drawable/red" android:state_pressed="true" /> </item></selector>

AndroidのResource - Drawableリソース

DrawableリソースはAndroidで最も使われるリソースである。 直接.png,.jpg,.gif,.9.png等を使用するかXMLの使用も可能。 イメージリソース 直接.png,.jpg,.gif,.9.png等を/res/drawable-xxxフォルダに配置する。 [<package_name>.]R.drawable.<file_name> @[<package_name>:]drawable/file_name Stat</package_name></file_name></package_name>…

AndroidのResource - Arrayリソース

Androidはjavaソース内の配列定義はお勧めせず、/res/values/arrays.xmlを使い配列リソースを定義するようにしている。 定義 <array.../> <string-array.../> <integer-array.../> 使用 [<package_name>.]R.array.array_name @[<package_name>:]array/array_name Resourcesのメソッドでアクセス String getStringArray(int id) int StringI</package_name></package_name></integer-array.../></string-array.../></array.../>…

AndroidのResource - 文字列、色、サイズリソース

文字列、色、サイズリソースに対応するXMLファイルはすべて/res/values/配下に保存する。 デフォルトリソース名 /res/values/strings.xml /res/values/colors.xml /res/values/dimens.xml Rクラス内の内部クラス名 R.string R.color R.dimen Android色の形式…

AndroidのResource - リソースの概要

Androidアプリのソースは大きく三つの種類がある。 レイアウトファイル javaソースファイル リソースファイル リソースファイルの種類 R.javaを通してアクセスできるリソース、resフォルダ配下に保存する R.javaを通してアクセスでいないリソース、assetsフ…

AndroidのIO - GestureLibrary

GestureLibraryを使い新しいジェスチャーを保存し、次回検知することができる。 GestureLibraryのロードメソッド static GestureLibrary fromFile(String path) static GestureLibrary fromFile(File path) static GestureLibrary fromPrivateFile(Context c…

AndroidのIO - GestureDetector

Androidは、 1. GestureDetectorを提供し、ジェスチャーを検知する 2. GestureLibraryを提供し、開発者がジェスチャーを追加し、対応するAPIを使い検知する GestureDetector.onGestureListnerの一部イベント boolean onDown(MotionEvent e) boolean onFling(…

AndroidのIO - SQLiteOpenHelperクラス

実際にSQLiteDatabaseのメソッドを使ってSQLiteDatabaseオブジェクト取得は煩雑のためお勧めしない。 通常はAndroidが提供するSQLiteOpenHelperクラスを使う。 SQLiteOpenHelperのメソッド synchronized SQLiteDatabse getReadableDatabase() synchronized S…

AndroidのIO - SQLiteDatabseのサンプルコード

① activity_main.xml <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" android:weightSum="1"> </linearlayout>

AndroidのIO - SQLiteDatabse概要

SQLiteDatabaseは軽量RDBMSであり、データベースは一つのファイルである。 SQLiteDatabaseオブジェクト取得(一部) static SQLiteDatabse openDatabase(String path, SQLiteDatabse.CursorFactory factory, int flags) static SQLiteDatabse openOrCreateData…

AndroidのIO - openFileInputとopenFileOutput

Androidはjava標準IO以外に専用のIO APIを提供している。 Contextが提供するIOストリーム FileInputStream openFileInput(String name) FileOutputStream openFileInput(String name, int mode) MODE_PRIVATE MODE_APPEND MODE_WORLD_READABLE MODE_WORLD_WR…

AndroidのIO - SharedPreferenceとEditor

SharedPreferences 主に少量データのやり取りに使用する。 設定のON、OFFとか。 Editor SharedPreferencesは書き込み機能はないので、edit()と通して対応するEditorオブジェクトを 取得して書き込みを行う。 SharedPreferencesの一部メソッド boolean consta…

AndroidのBroadcastReceiver - システムBroadcast

例: ACTION_TIME_CHANGED - 時刻変更~ ACTION_BATTERY_CHANGED - バッテリ容量変更 ACTION_BOOT_COMPLETED - システム起動完了 など 詳細: 【Standard Broadcast Actions】 http://developer.android.com/intl/ja/reference/android/content/Intent.html …

AndroidのBroadcastReceiver - Ordered Broadcast

Ordered Broadcastは 指定した順位で受信する(setPriority() Or android:priotiry) 次の受信者にデータ送信できる Broadcast Intent終了できる(abortBroadcast()) サンプルコード ① MainActivity.javaのボタンでOrdered Broadcastを行う package com.example…

AndroidのBroadcastReceiver - Normal Broadcast

Normal Broadcastは非同期であり、同時にすべての受信者が受信する。 サンプルコード ① MainActivity.javaのボタンでBroadcastを行う package com.example.liguofeng.mynormalbroadcastreceiver; import android.content.Intent; import android.support.v7.…

AndroidのBroadcastReceiver - 概要

BroadcastReceiverはプログラム(ユーザ開発、システム内部プログラム)が発信するBroadcast Intentを受信する。 BroadcastReceiverの本質はグローバル(システムレベル)リスナーである。 BoradcastReceiverの実装 BoradcastReceiverのonReceiver(Context conte…

AndroidのService- Vibrator

振動を制御するシステムサービスのサンプルコード ① 権限追加(AndroidManifest.xml) <uses-permission android:name="android.permission.VIBRATE"/> ② メインActivity (layoutは省略) package com.example.liguofeng.mytelephonymanager; import android.app.Service; import android.os.Vibrator; import android.suppor</uses-permission>…

AndroidのService- 着信を監視する

TelephonyMangerを利用して着信状態を監視するServiceのサンプルコード。 概要: 着信イベントを取得し、ファイルに書き出す。 ※権限追加とService起動などは必要。 package com.example.liguofeng.mytelephonymanager; import android.app.Service; import …

AndroidのService- TelephonyManager

TelephonyManagerは携帯の状態を管理するためのシステムサービスである。 大量のgetXXX()を提供してあるので、携帯関連の情報を色々取得できる。 詳細は http://developer.android.com/intl/ja/reference/android/telephony/TelephonyManager.html オブジェ…

AndroidのService- IntentService概要

IntentServiceもServiceの一種だが、特殊な機能を提供してくれる。 まず、なぜIntentServiceが必要なのか。 通常Seriviceの問題点 Serivceは独自のスレッドではなく、アプリと同じスレッド内である 新スレッドではないので、時間がかかる処理を書くのはよく…

AndroidのService- Serviceと通信する

Serviceと通信するためには、 bindService()とunBindService()を利用してServiceの起動と終了を行う。 Serviceを実装する際に、 IBinder onBind(Intent intent)でService通信するためのオブジェクトを返す必要がある。 bindService(Intent service, ServiceC…

AndroidのService- Serviceの概要

Androidにおいて、Serviceコンポーネントは実行可能プログラムである。 Activityとの比較 Activityと同じく、lifecycleがあり、生成、配置する必要がある Activityと同じく、Contenxtの派生クラスであるので、ContextクラスのgetResource(), getContentResol…

AndroidのContentProvider - SMS発送を監視する

AndroidはContentObserverを提供し、ContentProviderのデータ変更を監視する。 SMS発送を監視するサンプル (サンプルではActivityですが、Activityを起動しないと監視できないので、現実的ではない。 Serviceで実装すべきである) <uses-permission android:name="android.permission.READ_SMS"/> package com.example.lig</uses-permission>…

AndroidのContentProvider - システムのContentProviderを使って連絡先を登録する

Android自身は大量のContentProviderを提供してあり、それぞれquery(),insert(),delete(),update()などを実装してある。 Android連絡先のUri ContactsContract.Contacts.CONTENT_URI : 連絡先管理Uri ContactsContract.CommonDataKinds.Phone.CONTENT_URI : …

AndroidのContentProvider - ContentProviderサンプル

実装の流れ ContentProviderサブクラス実装 AndroidManifest.xml登録 ContentResolverサブクラス実装 実行 package com.example.liguofeng.contentprovidersample; import android.content.ContentProvider; import android.content.ContentValues; import a…

AndroidのContentProvider - ContentProviderの概要

ContentProviderはAndroidアプリの間でデータやり取りを行うために用意されてある標準APIである。 データ取得と提供 Androidアプリのデータ提供は、ContentProviderを利用し、Uri指定で提供する。 Androidアプリのデータ取得は、ContentResolverを利用し、Ur…

AndroidのIntent - Intentを使用してTabページを作成する

Tabページを追加する際のTabHost.TabSpectのメソッドは setContect(int viewId) - id指定のViewをTabページにする setContent(Intent intent) - Intentに対応するActivityをTabページにする サンプルコード TabActivity1,TabActivity2,TabActivity3と対応す…

AndroidのIntent - Flag属性

FlagはIntentに対して制御を追加する。 addFlags()で追加する。 常用Flag FLAG_ACTIVITY_BROUGHT_TO_FRONT このFlagで起動したActivityが既に存在する場合、Activityキューから前面に出す。 FLAG_ACTIVITY_CLEAR_TOP このFlagはsingleTaskモードで起動したAc…

AndroidのIntent - Extra属性

IntentのExtraはAction間のデータやり取りで利用される。 Extra属性値はBundleオブジェクトである。 サンプルコード

AndroidのIntent - Data属性とType属性

Data属性はAction属性にデータを提供する。 特性: Data属性値はUriオブジェクトである Uriの形式 scheme://host:port/path 例:content://com.android.contacts/contacts/1 Type属性はData属性が指定したUriのMINEタイプを指定する。 abc/xyzのフォーマット…

AndroidのIntent - Action,Categoryを指定してホームに戻る

package com.example.liguofeng.intentsample; import android.app.Activity; import android.content.ComponentName; import android.content.CursorLoader; import android.content.Intent; import android.database.Cursor; import android.net.Uri; impo…

AndroidのIntent - Actionを指定して連絡先を取得する

Intentを通して自分アプリ以外、システムActivityを起動することも可能です。 適切な権限を設定し、Adnroid内部で提供している大量のAction、Categoryの定数を利用すればできる。 Intentの定数 http://developer.android.com/intl/ja/reference/android/cont…

AndroidのIntent - Component属性

IntentのComponent属性はComponentNameオブジェクトを設定し、 どのコンポーネントを起動するかを指定する Componentのコンストラクタ ・Component(String pkg, String cls) ・Component(Context pkg, String cls) ・Component(Context pkg, Class cls) Inte…

AndroidのIntent - ActionとCategory

Action属性は抽象的な振る舞いである。 これは、Struts2のAction処理後、SUCCESSを返すと似ている。 使用流れ ① AndroidManifest.xmlのAcvivityのAction属性、Category属性を設定する ② ActivityでIntentにActionとCategoryを設定する ③ IntentでActivityを…

AndroidのIntent - 概要

Intentは日本語で「意図」という意味である。 ActivityからActivity(Service, BroadcastService)を起動する時に直接起動するのではなく、Intentで意図(どのActivityを起動)を表して起動する。 Androidの重要なコンポーネントであるActivity、Service、Broadc…

AndroidのFragment - LifecycleとCallback

AndroidのFragment - Fragment生成&Activityとの通信

サンプル概要 Activityは二つのFragment 1. BookListFragment - 本リストを表示する 2. BookDetailFragment - 本の詳細を表示する を含み、本をクリックした際にその詳細が表示される。 作成手順 ① BookContent(Bookモデル含む)を作成する ② BookDetailFra…

AndroidのFragment - 概要

FragmentはAndroid3.0から導入した新しいAPIである。 Fragmentは言葉の通り断片の意味でActivityの断片である。 目的 タブレットの出現により画面が大きくなり、 スマホより多くの部品を一つの画面に配置できるようになったからのである。 Fragmentの特性 Fr…

AndroidのActivity - LauncherMode

Andoridはアプリ起動時には 1. Taskを生成 2. アプリの入り口Activity起動(AdnroidManifest.xmlのMAIN指定されたもの) AndroidはTaskについてAPIを提供してないため、 開発者はTaskのアクセスすることができなく、 ただActivityのgetTaskId()メソッドで所在…

AndroidのActivity - LifecycleとCallback

AndroidのActivity - Activityからのデータ受け取り (Bundle)

MainActivity.java package com.example.liguofeng.responsefromactivity;import android.app.Activity;import android.content.Intent;import android.support.v7.app.AppCompatActivity;import android.os.Bundle;import android.view.View;import android…

AndroidのActivity - Activityへのデータ渡し (Bundle)

MainActivity.java package com.example.liguofeng.requestdatatoactivity;import android.app.Activity;import android.content.Intent;import android.support.v7.app.AppCompatActivity;import android.os.Bundle;import android.view.View;import androi…