約 6,285,207 件
https://w.atwiki.jp/devemin/pages/13.html
●Activityの回転時の再生成への対応 ①再起動させなければいいので、onConfigurationChanged() メソッドをオーバーライド ②Activityのマニフェストに android configChanges="orientation|keyboardHidden" @Override public void onConfigurationChanged(Configuration newConfig) { super.onConfigurationChanged(newConfig); } http //d.hatena.ne.jp/hyoromo/20090712/1247385249 (Softbank 005SHでは、keyboardHiddenが必要だった。) ●Eclipseの入力補完(オートコンプリート)が遅い件 バージョン3.62にすれば問題ないらしい ●アップデート後など、eclipseが起動しなくなった場合 eclipse\configuration\jp.sourceforge.mergedoc.pleiades フォルダを削除したらOKだった ●Android アプリ開発時、有料・無料の2種プロジェクトを作るTips (ソースを2プロジェクトで共有する方法) こちらを参考にさせてもらいました。 (Androidの無料アプリ・有料アプリを切り替えてビルドする方法) http //d.hatena.ne.jp/eaglesakura/20100629/1277832265 上記URLで書いてあった方法は、部分的に、自分のアプリでは対応できない部分があったので、自分のやった方法で、全体名流れを補足。 まず2つプロジェクトを普通に作る。(基本app-freeと派生app-paid) 2つのパッケージ名はそれぞれ、 com.appli.free com.appli.paid など、最後の1段落のみ変えたりするとわかりやすいかも。 プロジェクト名は、ここでは「app-free」「app-paid」としてみる。 派生プロジェクトpaidでは、src、assets、resディレクトリを、 リンクしたディレクトリとする。 派生プロジェクトapp-paidでは、基本プロジェクトapp-free内の自動生成ファイルR.javaが必要になる。 手動で毎回やるのは酷なので、派生プロジェクトapp-paidビルド時に毎回app-free側のR.javaが自動でコピーされるよう、バッチファイルを作成、プロジェクトのプロパティ、ビルダー、で、ビルド時に毎回実行されるようにする。初回はプロジェクトのクリーンを実行で、×マーク消える。 ${build_project}\rcopy.bat ${build_project} 上記サイトを参考にさせていただきました。 rcopy.bat -------------------------------- @echo off SET PARENT_PROJECT=app-free SET CURRENT_PROJECT=app-paid REM 定義ファイルをコピーする cd ..\%PARENT_PROJECT%\ REM genフォルダをコピーする xcopy /s /e /y .\gen ..\%CURRENT_PROJECT%\gen cd ..\CURRENT_PROJECT\ -------------------------------- リソースを共有するので、有料版、無料版をそれぞれリソースに含めるので、容量はダブって損となる。気にする人は気にするかも?でも自分は利便性を取りました。 @string/app_name @string/app_name_paid @drawable/icon @drawable/icon_paid AndroidManufest.xmlは、アプリそれぞれに設定する。 (パッケージ名、label ) アクティビティ名を、省略名ではなく、 activity android name="light.diary.plus.EditWindow" などにする必要があるかも これらの結果、 app-freeプロジェクト、はほかの通常のプロジェクトとなんら変わりない app-paidプロジェクトは、res, asset, srcがリンクフォルダであり、src内パッケージは「com.appli.free」がある状態。 ×印が消えない場合は、プロジェクトのクリーン&eclipseの再起動、F5キーによるリフレッシュなどをトライ。 (必要に応じて、import light.diary.plus.R; ?) 有料・無料の処理切り分けは、getPackageName()で行う。 ●プログレスダイアログProgress Dialog 既に動いているサンプルをそのまま使うのが吉。 スレッド以外でGUI操作するとメモリエラーとなる。 https //groups.google.com/forum/#!msg/android-group-japan/0YlnSLptx8w/g6kAZuxrR14J 引用 ProgressDialog progressDialog; /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); progressDialog = new ProgressDialog(this); /*progressDialog.setTitle("処理中"); progressDialog.setMessage("処理を実行中です"); progressDialog.setIndeterminate(false); progressDialog.setProgressStyle(ProgressDialog.STYLE_SPINNER); progressDialog.show();*/ Thread thread = new Thread(this); thread.start(); } public void run() { // 時間のかかる処理をここに記述。 try { progressDialog.setTitle("処理中"); progressDialog.setMessage("処理を実行中です"); progressDialog.setIndeterminate(false); progressDialog.setProgressStyle(ProgressDialog.STYLE_SPINNER); handler.post(new Runnable() { @Override public void run() { progressDialog.show(); } }); Thread.sleep(5000); } catch (InterruptedException e) { // TODO 自動生成された catch ブロック e.printStackTrace(); } handler.sendEmptyMessage(0); } private Handler handler = new Handler() { public void handleMessage(Messa ●ADTアップデート等エラーのときのEclipse クリーン http //www.hlplus.jp/php/blog/index.php?UID=1298450960 名前 コメント
https://w.atwiki.jp/cappu/pages/30.html
Android 1.5 環境構築 リンク Android developer login Android developer Home Android 1.5 SDKインストール方法 android-sdk-windows-1.1_r1.zipをダウンロード後、 sdk /tools/ にpathを通す Android 1.5 SDKへアップデート方法 勉強方法 サンプル ApiDemos をEclipseプロジェクトにインポートする方法 サンプルアプリのリポジトリ svn checkout http //apps-for-android.googlecode.com/svn/trunk/ apps-for-android-read-only メモ 画面遷移 opengl ES SDCard OptionsMenuの作成方法 リンク Google Nexus One 3Dベンチマーク&UIツアー
https://w.atwiki.jp/redcloud/pages/13.html
目次 目次 SDK 1.6 SDK導入 Eclipse ADT導入 Eclipse 3.4の場合 Eclipse 3.5の場合 仮想マシンAVD作成 SDK 2.0 SDK導入 Eclipse ADT導入 Eclipse 3.5の場合 add-ons ファイルの取得 仮想マシンAVD作成 ツール adb adb devices 接続デバイス確認 adb shell コンソール接続 adb install アプリインストール adb push ファイル転送 開発 Eclipse ADTでHello World SDK1.5ベース SDK1.6ベース SDK2.0ベース Map使用アプリ ステータスバー使用アプリ いじる HT-03A 道化 カスタムROM導入 読書メモ お勉強 リンク SDK 1.6 SDK導入 ダウンロードここから android-sdk-windows-1.6_r1.zip をダウンロード C \local\android-sdk-windows-1.6_r1 に解凍 PATH環境変数に、 上記解凍先フォルダ \tools を追加 Eclipse ADT導入 Eclipse 3.4の場合 eclipseを起動して、[ヘルプ]- [ソフトウェアの更新]で[使用可能なソフトウェア]タブを選択し、[サイトの追加]を押下 https //dl-ssl.google.com/android/eclipse/ を追加して、正常に追加できていることを確認 ※2009/11/3時点でバージョンは0.9.4 追加したサイトにチェックを入れ[インストール]押下 ※上記方法でうまくいかなければ。。。↓ ※実際に "No repository found containing org.apache.oro/osgi.bundle/2.0.8.v200903061218" というエラーが発生した! ダウンロードここから ADT-0.9.3.zip をダウンロード eclipseを起動して、[ヘルプ]- [ソフトウェアの更新]で[使用可能なソフトウェア]タブを選択し、[サイトの追加]を押下 [アーカイブ]を押下し、ダウンロードしてきたzipを指定、正常に追加される事を確認 追加したサイトにチェックを入れ[インストール]押下 ※アップデートの場合は下記のようなダイアログが出る ※これでもうまくいかず。。。Eclipseを3.5にするしかなさそう Eclipse 3.5の場合 eclipseを起動して、[ヘルプ]- [新規ソフトウェアのインストール]- [追加]で、https //dl-ssl.google.com/android/eclipse/ を追加 使用可能なソフトウェアの画面に戻って、[作業対象]プルダウンで追加したandroidのURLを選択。ソフトウェア表示欄にDeveloper Toolsが表示される事を確認 全てにチェックを入れて[次へ]。後はインストールをひたすら進める。(警告が出てもOKする) [ウインドウ]- [設定]- [Android]で、[SDKロケーション]にインストールしたAndroidSDKのフォルダを指定 仮想マシンAVD作成 コマンドプロンプトを開いて下記を実行 android create avd -n SDK16 -t 4 -c 128M エミュレータ起動確認 emulator @SDK16 SDK 2.0 ※SDK1.6からのアップデートを前提とした手順を記述する SDK導入 ダウンロードここから C \local\android-sdk-windows に解凍 PATH環境変数に、 上記解凍先フォルダ \tools を追加 Eclipse ADT導入 Eclipse 3.5の場合 eclipseを起動して、[ヘルプ]- [新規ソフトウェアのインストール]- [追加]で、https //dl-ssl.google.com/android/eclipse/ を追加 使用可能なソフトウェアの画面に戻って、[作業対象]プルダウンで追加したandroidのURLを選択。ソフトウェア表示欄にDeveloper Toolsが表示される事を確認 全てにチェックを入れて[次へ]。後はインストールをひたすら進める。(警告が出てもOKする) [ウインドウ]- [設定]- [Android]で、[SDKロケーション]にインストールしたAndroidSDKのフォルダを指定 add-ons ファイルの取得 eclipseを起動して、[ウインドウ]- [Android SDK and AVD Manager] [Available Packages]のリポジトリを展開し、必要な物にチェックを入れ[Install Selected]- [Accept All]にチェックを入れ[Install Accepted] 仮想マシンAVD作成 eclipseを起動して、[ウインドウ]- [Android SDK and AVD Manager] [Virtual Devices]を選択して[新規]を押下して Create new AVD画面を開く Maps APIをSDK1.5ベースで使用できる「Google APIs API Level 3」を使用する前提で。。。 名前…任意の名前を入力 ターゲット…"Google APIs(Google Inc) - API Level 3" SD Card…サイズ=任意(とりあえず128 MiB) Skin…Built-In=任意(とりあえずDefault) SDK1.6ベースの「API Level 4」を使用する前提で。。。 ターゲット…"Android 1.6 - API Level 4" SDK2.0ベースの「API Level 5」を使用する前提で。。。 ターゲット…"Android 2.0 - API Level 5" 以上を入力して[Create AVD] ツール adb adb devices 接続デバイス確認 PCに接続中のデバイス(エミュレータも含む)を表示する adb devices List of devices attached HT********** device ←実機 emulator-**** device ←エミュレータ adb shell コンソール接続 adb (-s serial number ) shell adb install アプリインストール apkファイル形式のアプリを接続中のデバイスにインストールする adb (-s serial number ) install c \hoge.apk adb push ファイル転送 SDカードにPC上のファイルを転送する adb (-s serial number ) push "c \hoge.txt" /sdcard/hoge.txt 開発 Eclipse ADTでHello World SDK1.5ベース SDK1.6ベース SDK2.0ベース Map使用アプリ TODO ステータスバー使用アプリ TODO いじる HT-03A 道化 このリンクを、Gmailからorブラウザから起動 ファイルマネージャ(AndExplorerなど)で /sdcard/download を開き(※DolphinブラウザでDLした場合はここだった)、ダウンロードしたapkファイルを選択 TODO カスタムROM導入 TODO 読書メモ Android/読書メモ お勉強 Android/お勉強 リンク TODO
https://w.atwiki.jp/pcmemo/pages/25.html
Android Android SDKのインストーラにJDKが無いと言われる JDKが入っているのに 「Java SE Development Kit (JDK) not found.」 と言われる場合 64bit版WindowsだとJDKの使うレジストリの関係でインストーラがJDKを認識できないようです とりあえずzip版使えばOK 実機での実行/デバッグ 実機での実行 実機でもデバッグができるようにするEclipseならAndroid.xmlの「アプリケーション」タブからApplication Attributes内、debuggableをtrueに 直接編集する場合は、 application 要素に「android debuggable="true"」を追加 Eclipseでの実行実行やデバッグを押すとAndroid Device Chooserダイアログが出るので上側の実機デバイスを選択してOK AVDが自動で起動する場合、実行>実行(デバッグ)構成>Androidアプリケーション>(プロジェクト名)>ターゲット内のAVDのチェックを外して適用 ADBでの実機へのインストール・アンインストール 実機が繋がった状態でコマンドプロンプトから インストールadb install [.apkファイル] .apkはプロジェクトのbinフォルダにあるやつ アンインストールadb uninstall [パッケージ名] パッケージ名はcom.example~とかのやつ Android NDK ndk-build時に/cygdrive/g/David~が見つからないと言われる よくわからないけどWindowsのGドライブが関係しているようで、Daemon Toolsが作成していたGドライブを削除したら通るようになった。 参考URL https //groups.google.com/group/android-ndk/browse_thread/thread/7eb2ef515c1fca2?hl=ja
https://w.atwiki.jp/777townforandroid/pages/1211.html
デザイン 機種 パチスロコードギアス 反逆のルルーシュ アニメーション あり スキル効果 精算時に使用するとピースが少し増加する10%の確率でスーパーオート状態になる 消費SP 034 入手方法 イベント LvMAX経験値 ? 限界突破素材 ユフィ(サキュバス)+1 x 1突破珠(青) x 3突破珠(黄) x 3 限界突破先 ユフィ(サキュバス)+2 限界突破元 ユフィ(サキュバス) 備考
https://w.atwiki.jp/tako2lab/pages/18.html
Android Android関連の覚書とか。 基本的にEclipseを使って開発するようだけど、使わないでする方法もあるようなので、その線でやってみる。 #HaiPad を購入したので、ぼちぼち現状に合わせて書き直してみる [2010-10-25] Android SDK のインストール http //code.google.com/android/download.htmlからSDKをダウンロード バージョン r07 を使用 バージョン m3-rc22a を使用 Android 1.6 から SDK のインストール方法が変わったとか インストール方法 ⇒ http //developer.android.com/sdk/installing.html 適当なディレクトリに展開 展開したディレクトリを$SDK_ROOTとしたとき、$SDK_ROOT/toolsをパスに追加 後でcygwinから参照できるように C のルートに展開した (C \android-sdk-windows\tools をパスに追加) 各 SDK や USB ドライバのインストールは、SDK Manager から行う http //developer.android.com/sdk/adding-components.html JDK のインストール http //java.sun.com/javase/downloads/index.jsp JDK 6 Update 3 を使用 これもインストール先を C \Java にして展開 Apatch Ant のインストール http //ant.apache.org/ Apatch Ant 1.7 を使用 これもルートに展開 環境変数を設定 PATH に C \apache-ant-1.7.0\bin を追加 ANT_HOME に C \apache-ant-1.7.0 を設定 JAVA_HOME に C \Java\jdk1.6.0_03 を設定 プロジェクトの作成 activityCreator を使ってプロジェクトを作成 プロジェクトを作りたいディレクトリに移動して、次のようにコマンドを実行 activityCreator --out [プロジェクト名] [パッケージ名.アクティビティ名] % activityCreator.bat --out HelloTako tako.test.HelloTako プロジェクト名のついたディレクトリが作成される ビルド プロジェクトのディレクトリで ant を実行 % cd HelloTako % ant bin の下にできた .apk ファイルが実行ファイル HelloTako.apk 実行(デバッグ) エミュレータを起動 (C \android_sdk_windows_m3-rc22a\tools\emulator.exe) % emulator エミュレータと通信するためのサーバを起動 % adb start-server adb を使って .apk をインストール エミュレータはホーム画面に戻しておくこと % adb install HelloTako.apk ホームの Applications にインストールされるので、そこへ移動して実行 リンク android情報まとめ@wiki
https://w.atwiki.jp/api_programming/pages/195.html
下位ページ インテントとインテントフィルタ サービス(Service) ストレージオプション フラグメント(Fragment) プロセスとスレッド(processes and threads) リストビュー(List View) レイアウト(Layout) 入力コントロール(Controls) 設定(Setting) 通知(Notification) Content スピナーコントロールの設定レイアウトの準備 選択肢の設定string.xmlでの設定 プログラム側から値を選択する アクティビティアプリの閉じられ方で、挙動が異なる アクションバーの代わりに、ツールバーを使うアクションバーを消す ツールバーをレイアウトに追加する Activity内で、アクションバーの代わりに使う記述をする スライドメニューを実装するドロワーレイアウトを作成する ドロワービューの中身を準備するListViewで作る 別のXMLファイルで作る ドロワーのオープン・クローズを実装する バックグラウンド処理(サービス) 閉じられても動作するサービスを動かすServiceクラスの作成 Activityから、作成したサービスを動かす 加速度センサの情報を受ける 回転角の情報を受け取る回転角の解釈 画面の回転を抑制するAndroidManifest.xmlで抑制する 動的に(プラグラム内で)で抑制する インテントにオブジェクトの情報を乗っけるparcelable をインプリメントしたクラスをつくるParcelable.Creater フィールドの実装 BundleやIntentに情報を乗せる Activity側で受ける 複数の情報をリストにして表示する バイブレーションを一定時間、作動させるパーミッションの追加 Vibratorオブジェクトを生成する vibrateを実行する 通知バーにバックグラウンド起動中の表示を出す 裏返したときの方向で、記録を分ける メニューのバーを設定するメニューリソースを準備するフォルダの作成 リソースファイルの作成 設定したメニューファイルを、Activityのメニューバーに評させる メニューの選択を受け取る処理を作る チェックボックスを動作させる 設定画面を設定する/設定情報をローカルストレージに残す 記録内容をGoogleスプレッドシートに記録する 記録内容をGoogleカレンダーに記録するブラウザでURLを開く ブラウザを開くURIとして、認証ページを指定する リダイレクトを受け取る 受け取ったリダイレクトをデータに紐解く codeを送って、tokenを受け取る tokenを保存する 終了時間と開始時間から、時間の計算をする リストビューで独自レイアウトを設定する USBデバッグ リリースビルド スピナーコントロールの設定 [部分編集] レイアウトの準備 Spinner android id="@+id/planets_spinner" android layout_width="fill_parent" android layout_height="wrap_content" / 選択肢の設定 string.xmlでの設定 まずは、string.xmlに文字配列を作る string-array name="planets_array" item Mercury /item item Venus /item item Earth /item /string-array この文字配列をアダプタにして、スピナーコントロールにアダプタをするリソースのアダプタ化には、ArrayApapter.createFromResource を使用できる。simple_spinner_item はデフォルト外観を設定している。通常はこれで良し。 setDropDownViewResource(int) は選択時に一覧を表示するのに使う。なくても一応ドロップダウンは出てくるが、ちょっとしょぼい? Spinner spinner = (Spinner) findViewById(R.id.spinner); ArrayAdapter CharSequence adapter = ArrayAdapter.createFromResource(this, R.array.planets_array, android.R.layout.simple_spinner_item); adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); spinner.setAdapter(adapter); createFromResource - ArrayAdapter | Android Developers setDropDownViewResource - ArrayAdapter | Android Developers プログラム側から値を選択する Spinner.setSelection で位置を指定する。その位置を取得するにはAdapterを使う。 使っているアダプタを取得するobjSpinner.getAdapter でアダプタを取得できる objAdapter.getPosition("...") でセレクタの位置を取得値が見つからなかったら -1 が返る objSpinner.setSelection に先程取得した位置を設定する ArrayAdapter spinnerAdapter = (ArrayAdapter) objSpinner.getAdapter(); int i = spinnerAdapter.getPosition("value"); objSpinner.setSelection(i); getAdapter - AbsSpinner | Android Developers getPosition - ArrayAdapter | Android Developers setSelection - AbsSpinner | Android Developers アクティビティ アプリの閉じられ方で、挙動が異なる onDestroyが呼ばれない限りは、Serviceを使わずとも、 ↓にある通り、ホームボタンとバックボタンでアプリケーションから離れた場合で挙動が違う。 https //kokufu.blogspot.jp/2011/03/activity.html 説明として、 ホームボタン:ホームアプリケーションが起動している バックボタン:Activityスタックからポップしている と書いてあったが、気持ち悪いのは、□ボタンを押すとあたかもまだ生きているかのように、アプリケーションリストに表示されるから。画面上に残っているが実際には onDestroy で消えている。 このあたりが、「アプリケーションをスワイプして消しても消さなくてもメモリにはそれほど影響しない」ということなんだろうか。 アクションバーの代わりに、ツールバーを使う [部分編集] 今後の拡張性から、アクションバーよりツールバーを使ったほうが良い、という記述をちょこちょこ見かけるが、Android Studioでプロジェクトを作ると、基本はアクションバーが設定されている。これをツールバーに置き換える。 アプリバーの追加 | Android Developers Toolbar | Android Developers AndroidのToolBar(新しいActionBar)メモ | Qiita アクションバーを消す res/values/styles.xmlで AppThemeのテーマを変更する style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar" ツールバーをレイアウトに追加する android.support.v7.widget.Toolbar android id="@+id/toolbar" android layout_width="match_parent" android layout_height="wrap_content" / レイアウトの@android */* ,?attr/* ,?* ,?android attr/* の違い | Qiita Activity内で、アクションバーの代わりに使う記述をする /* ToolBarの設定 */ Toolbar toolbar = (Toolbar)findViewById(R.id.toolbar); toolbar.setTitleTextColor(Color.WHITE); // 設定をしておく setSupportActionBar(toolbar); // アクションバーの代わり、という設定 これを書かないと、画面上では何も表示されない(空間だけはある) スライドメニューを実装する [部分編集] NavigationDrawer が正式名称? DrawerLayout | Android Developers ナビゲーションドロワーの作成 | Android Developers ドロワーレイアウトを作成する レイアウトxmlにて、DrawerLayout オブジェクトをレイアウトのルートビューとして指定する。 ルートの中にドロワービューとメインビューを設定する順序はメインビューを先にする高さはルートに合わせる(match_parent) 次にドロワーのビューを指定するlayout_gravityを指定する(layout_gravity:どっちにくっつけるか、どちら方向から出てくるか?)右から左に出す場合にはstart layout_heightは親ビューと同じ高さを指定する layout_widthはすべての情報が見える幅を指定する ドロワービューの中身を準備する ListViewで作る ListViewの中に android layout_gravity="..." を入れないと、スライドで入ってくる設定にならず、重ねて見えている状態になる android background="#111" 背景がないと、中途半端にすけた状態で表示される。 別のXMLファイルで作る NavigationViewで作った場合、ヘッダ部分とメニュー部分をそれぞれレイアウトとメニューで作成する app headerLayout="@layout/drawer_header" app menu="@menu/drawer" ドロワーのオープン・クローズを実装する DrawerLayout にリスナーをセットする。このリスナーは DrawerLayout.DrawerListener を実装して、使う。 Activity にアクションバーがセットされている場合は ActionBarDrawerToggle が DrawerLayout.DrawerListener を実装する。 DrawerLayout mDrawerLayout = ...; ActionBarDrawerToggle mDrawerToggle; mDrawerToggle = new ActionBarDrawerToggle(this, mDrawerLayout, R.string.drawer_open, R.string.drawer_close) { public void onDrawerClosed(View view) {...} public void onDrawerOpened(View drawerView) {...} }; // Set the drawer toggle as the DrawerListener mDrawerLayout.setDrawerListener(mDrawerToggle); 【Android】スライドして表示されるメニュー | Qiita Navigation Drawer の概要 | Android 開発入門 Navigation Drawer の基本的な実装方法 | Android 開発入門 バックグラウンド処理(サービス) サービス - Android Developers Androidアプリでのバックグラウンド処理と通知機能 | Android Studio 2で始めるアプリ開発入門 - CodeZine 流れ Serviceのサブクラスを作成する AndroidManifest.xmlにサービスを登録 サブクラスで、必要なクラスをオーバーライドする。次のあたり。onCreate() onStartCommand() onDestroy() アクティビティからサービスを起動する (きちっと止まるように設計しておく) 閉じられても動作するサービスを動かす バックグラウンドで動作させるためにはServiceを用いる。 Serviceクラスの作成 Activityのように、作成・開始などのイベントで動くが、おもに3つ。 onCreate onStartCommand onDestroy Service | Android Developers Activityから、作成したサービスを動かす startServiceで起動、stopService(stopSelf)で停止。忘れずにServiceを止めないと、いつまでも動き続ける。 startService、stopServiceなどには、インテントを準備して、サービスにそれをなげる形をとっている。 startService - Context | Android Developers stopService - Context | Android Developers stopSelf - Service | Android Developers 加速度センサの情報を受ける 回転角の情報を受け取る センサーは加速度まではそのまま読み取れるが、回転角は加速度情報、地磁気情報から計算する必要がある。まず getRotationMatrix で回転行列を求め、getOrientation で回転行列を回転角に変換する(計算する) getRotationMatric - SensorManager | Android Developers getOrientation - SensorManager | Android Developers 引数に取った2つの配列には、傾斜行列、回転行列(の情報)が計算されて入ってくる。情報が不要ならnullでよい。 回転角の解釈 正位置として Zは天を指す Yは磁北を指す Xは Y,Z の外積を指す 画面の回転を抑制する AndroidManifest.xmlで抑制する 回転させないActivityに android screenOrientation="portrait" を追加すると、縦向き固定になる activity | Android Developers 動的に(プラグラム内で)で抑制する Activity内で、setRequestedOrientation を呼び出す setRequestedOrientation - Activity | Android Developers screenOrientation - ActivityInfo | Android Developers インテントにオブジェクトの情報を乗っける bundleで多くの情報をわたすような方法として、putParcelableArrayList くらいしか見当たらないので、これを使う。そのためには、Parcelable をimplements したようなクラスを作る必要がある。 Bundle | Android Developers parcelable をインプリメントしたクラスをつくる Parcelable実装にはParcelable.Createorというstatic fieldが必要。そのフィールドの初期化にて、Parcelに保存したデータを復元するためのコンストラクタを呼ぶ。 Parcelable | Android Developers Parcelable.Creater フィールドの実装 Parcelable.Creater | Android Developers createFromParcel(Parcel source)Parcelable.writeToParcel() で書き出されたParcelデータをインスタンス化する → コンストラクタを作っておく newArray(int size)ParcelableクラスのArrayを作る BundleやIntentに情報を乗せる IntentならputParcelableArrayListExtra、BundleならputParcelableArrayList で情報を登録 putParcelableArrayListExtra - Intent | Android Developers getParcelableArrayList - Bundle | Android Developers Activity側で受ける IntentならgetParcelableで受けられる。受けたときにすでにParcelableをimplementしたオブジェクトで受けられる。 getParcelableArrayListExtra - Intent | Android Developers getParcelableArrayList - Bundle | Android Developers 複数の情報をリストにして表示する [https //www54.atwiki.jp/api_programming/pages/202.html] バイブレーションを一定時間、作動させる Vibratorインスタンスからvibrate()を実行する。バイブレーションの実施にはAndroidManifest.xmlにパーミッションの追加が必要。 パーミッションの追加 マニフェストにパーミッションを追加する - パーミッションの宣言 | Android Developers Vibratorオブジェクトを生成する getSystemServiceでVibratorオブジェクトを生成する Vibrator vibrator = (Vibrator) getSystemService(VIBRATOR_SERVICE); getSystemService - Context | Android Developers Vibrator | Android Developers vibrateを実行する 幾つかパターンはあるが、かんたんなところで、これ。 vibrator.vibrate(500); vibrate - Vibrator | Android Developers 通知バーにバックグラウンド起動中の表示を出す 裏返したときの方向で、記録を分ける メニューのバーを設定する メニューリソースを準備し、表示させる。そのうえで、メニューのタップ動作に対する反応を記述する メニュー | Android Developers メニューリソースを準備する フォルダの作成 デフォルトではメニュー用のフォルダが無い(かもしれない)ので、res/menuを追加し、ここに入れておく。 resフォルダ右クリック [New]>[Android resource directory]を選択 ダイアログで、「Resource type 」から「menu」を選択し、OK リソースファイルの作成 menuフォルダを右クリック [New]>[Menu resource file] ファイル名を入力し、OK ファイル内に menu item / item / /menu を記述(実際はidやタイトルを設定する必要あり) Menu Resource | Android Developers 設定したメニューファイルを、Activityのメニューバーに評させる onCreateOptionMenuをオーバーライドして、この中でリソースの指定などを行う。XMLのメニューを実際?のメニューオブジェクトに変換するのに、inflatorを使用できる。 @Override public boolean onCreateOptionsMenu(Menu menu) { MenuInflater inflater = getMenuInflater(); //(1) inflater.inflate(R.menu.menu_options_menu_list, menu); //(2) return super.onCreateOptionsMenu(menu); //(3) } onCreateOptionMenu - Activity | Android Developers メニューの選択を受け取る処理を作る オプションメニューを作っていれば、その受取はonOptionsItemSelectedをオーバーライドして処理できる。 @Override public boolean onOptionsItemSelected(MenuItem item) { return super.onOptionsItemSelected(item); } このとき、itemにクリックされた情報が入っているので、これを紐解いて、どのメニューがクリックされたか判断し、switchなどで処理する。 int itemId = item.getItemId(); Android 3.0(APIレベル11)以降では メニューリソースXMLのitemに、android onClick を記述しておくことで、動作を定義させることもできる。 チェックボックスを動作させる Android/入力コントロール(Controls) 設定画面を設定する/設定情報をローカルストレージに残す Android/設定 記録内容をGoogleスプレッドシートに記録する http //qiita.com/konnobu/items/8bec3d5a45235fc88a08 記録内容をGoogleカレンダーに記録する 多分、クライアント用のライブラリが作られていて、簡単に認証処理をしたり、データを取得したりできるようになっていると思われるが、別サイトでも転用が聞くように、地道な方法を取ってみる。というか、専用のライブラリの使い方をよくわかっていない。 流れは OAuth2.0で認証Google API にプロジェクトと登録(キーの発行) 認証コードを発行 受け取り コードを access token と交換 access token も使って、リクエスト送信 こまごまと引っかかった場所が多数。 AndroidManifest.xmlにパーミッションの設定が必要 ブラウザでURLを開く Android/インテントとインテントフィルタ ブラウザを開くURIとして、認証ページを指定する GoogleのOAuth2認証 OAuth2認証 | Android Developers Step 1 Send a request to Google's OAuth 2.0 server | Google Identify Platform リダイレクトを受け取る 大概の(google 以外でも)場合は、認証後に指定したリダイレクト先に飛ばしてくれる。そのスキーム名に応じて、Android側でどのアプリで開くのかを考えてくれる。Android に「このスキームがきたら、俺のアプリで開いて」と指示するためには、AndroidManifest.xml に記述する必要がある。 scheme // host port / path intent-filter内で、action, category, data を指定する。上記のリダイレクト先に対応する内容を書くのは data で、scheme は data android scheme="com.example.testproject" / のようになる。 Intent の 定数として ACTION_VIEW などが定義されているが、実体は文字列で、それが android.intent.action.VIEW などになる(ので、どれを設定するかはIntent を参照)。ブラウザでどんなスキームがきたらヨソになげるのか、どんな action として投げるのか、説明されている場所がわからないが、ひとまず action ACTION_VIEW category CATEGORY_BROWSABLR scheme ここは各自で で開けた。redirect_uri で scheme //~ が指定できない( /だけ)なので、hostは存在せず、pathだけ。 インテント解決 - インテントとインテント フィルタ | Android Developers Intent - Android Developers 受け取ったリダイレクトをデータに紐解く 一旦受け取れれば、中身は getIntent() を経由して、中身を見られる(Intent.getAction(), Intent.getCategories() など)。OAuth では、path のなかに code を入れて返してくるので、Dataのなかを探せばある Intent intent = getIntent(); String data = intent.getDataString(); とすると、googleの認証で指定した redirect_uri のあとに code がくっついて返ってきている。以下、サンプル com.example.####.#### /oauth2callback?code=4/8abcdefg# 上記の場合、oauth2callback を uri.getPath() で、4/8abcdefg# を getQueryParameter("code") で受け取れる。 getIntent - Activity | Android Developers getData - Intent | Android Developers getQueryParameter - Uri | Android Developers codeを送って、tokenを受け取る コードと必要情報を POST することで、access token との交換をする。この処理は、UIスレッドだとエラーになるので、AsyncTaskで実行する必要がある。 また、交換がうまく行かなかったときは、HttpURLConnection の getInputStream ではなく、 getErrorStream に情報が流れるため、プログラムの確認作業では注意。(この辺をよくわかっていなくて、エラー原因を探すのに苦労した。) redirect_uri はスキームもパスもコード発行依頼時と同じものを使う。 Android/プロセスとスレッド(processes and threads) Async Task | Android Developers tokenを保存する プレファレンスへの保存 終了時間と開始時間から、時間の計算をする リストビューで独自レイアウトを設定する https //www54.atwiki.jp/api_programming/editx/202.html USBデバッグ http //www.aiseesoft.jp/tutorials/android-debug-mode.html リリースビルド http //androidstudio.hatenablog.com/entry/2014/07/26/154043
https://w.atwiki.jp/droid/pages/55.html
AIDE - Android Java IDE(無料) http //androider.jp/a/e68d0273ccc06b30/
https://w.atwiki.jp/souhei_world/pages/1570.html
サキュバス [解説] 人間の女性が邪法によって魔族へと変じた姿の一つ。 悪魔族に分類されるが、悪魔の中では戦闘力が一番低い。 その為、サキュバスは高位の魔人種の扱いは受けない。 男性に淫らな夢を見せて、関係を持つというまことにけしからん邪法を使う事ができる。 夢の中では獲物の心を捕らえるため、その人にとってもっとも魅力的な姿となって現れる。 夢の中という無防備な領域に侵入してくる故、男性が彼女らから逃れることは非常に難しい。 そして、夢の中でサキュバスに"喰われる"と生気を抜かれて、翌日の朝には衰弱してしまう。 サキュバスの戦闘力はこの『夢喰い』を行った回数によって増大していくため、何度も男性と関係を持ったサキュバスは非常に強い力を持つようになる。 実にけしからん魔族だ。 『夢喰い』は対象と肉体的に接触している必要がある為、サキュバスは人間に扮して対象と肉体関係を持とうとする。 力を蓄えるために異性を魅了しないといけない為、サキュバスは生まれつき魅了の魔眼を持つ。 これは反物質が原因で発症する魔眼病とは異なり、邪法に由来した生体変化である。 とはいえ、両者の能力や効果は似通っているため、発症する経緯は異なるが同質のモノという認識で問題ない。 サキュバスは大抵、背中にコウモリの様な羽が生えているため、飛翔能力を持つ。 羽は邪法によって形態変化ができるため、肩甲骨から出したり仕舞ったりできる。 サキュバスの平均寿命は100歳前後である。
https://w.atwiki.jp/riverwin/pages/15.html
= Android = == 参考HP == * [http //developer.android.com/index.html Android Developers] * [http //itpro.nikkeibp.co.jp/article/COLUMN/20090708/333496/?ST=android-dev Androidで広がる、携帯アプリ開発の世界---目次 - Androidで広がる、携帯アプリ開発の世界:ITpro] * [http //www.kumikomi.net/archives/2010/02/fo02andr.php 「Android」に関する情報|Tech Village / CQ出版株式会社] * [http //sites.google.com/site/io/anatomy--physiology-of-an-android Anatomy Physiology of an Android] - Androidの分析と設計哲学 * [http //sites.google.com/site/io/dalvik-vm-internals Dalvik VM Internals] - Dalvikの内部構造 == SDK (Software Development Kit) == * [http //java.sun.com/javase/downloads/index.jsp Java SE] * [http //mergedoc.sourceforge.jp/index.html#/pleiades.html Pleades - Eclipse プラグイン日本語化プラグイン] * [http //developer.android.com/sdk/index.html Android SDK] == NDK (Native-code Development Kit) == * [http //www.cygwin.com/ Cygwin Information and Installation] - Windows環境で開発する場合に必要 * [http //developer.android.com/sdk/ndk/index.html Android NDK] * [http //www.atmarkit.co.jp/fjava/rensai4/android15/android15_1.html Android NDKでJNIを使用してアプリを高速化するには (1/3) - @IT] * [wiki Android/SocketProgramming ソケットプログラミング] == Tips == * CUI/GUIの切り替え(for x86) * CUI Alt+F1 * GUI Alt+F7 * エミュレータの端末の向きを変えるには?:[ctrl]+[F12] * Android-x86で日本語入力するには? * [http //www.adamrocker.com/blog/286/simeji-for-x86.html x86で動くSimeji]ページから「Simeji3.A.3_x86.apk」をダウンロードしてインストールする。 * !LogCatで日本語を表示するには? * EclipseのADTプラグインでのLogCatでは、文字コードを指定できないため、表示不可。 * コマンドラインで直接LogCatを起動することにより、表示可能。 1. コマンドラインプロンプトのフォントをMSゴシックにするために仮のバッチファイル(ファイル名は最終的なものと同一)を作成する。内容は以下の通り。 {{{ cmd /k adb logcat }}} 1. 上記で作成したバッチファイルを実行し、表示されたWindowのタイトルバー右クリックでプロパティメニューを表示し、フォントタブにてフォントをMSゴシックに指定する。 1. バッチファイルを、UTF-8設定用に変更する。内容は以下の通り。 {{{ cmd /k chcp 65001 | adb logcat }}} * Android Marketに登録できないアプリを広めるには? * サードパーティが運営しているサーバを使用する。ex.[http //andappstore.com/ AndAppStore] * アプリ内で1D/2Dバーコードスキャンを行うには? * [http //code.google.com/p/zxing/ Zebra Crossing]を使用する。 == 関連リンク == * [http //www.oesf.jp/ Open Embedded Software Foundation] * [http //wiki.github.com/OESF/Embedded-Master-ARM/em1-environment-constructed EM1 Environment Constructed] {{{ #!comment == パッケージのインストール == 参考:[http //source.android.com/source/download.html Get Android Source Code | Android Open Source] 1. ビルドに必要なパッケージのインストール {{{ $ sudo apt-get update $ sudo apt-get -y install git-core gnupg sun-java5-jdk flex bison gperf libsdl-dev libesd0-dev libwxgtk2.6-dev build-essential zip curl libncurses5-dev zlib1g-dev valgrind g++ }}} 1. Android専用のプロジェクト管理ツール「repo」のインストール {{{ $ cd ~ $ mkdir bin $ curl http //android.git.kernel.org/repo ~/bin/repo $ chmod a+x ~/bin/repo }}} 1. 環境変数の設定 {{{ $ ls /usr/lib/jvm java-1.5.0-sun java-1.5.0-sun-1.5.0.19 $ export JAVA_HOME=/usr/lib/jvm/java-1.5.0-sun $ export PATH=$PATH ~/bin }}} 1. Android環境一式のダウンロード(Eclair)[[BR]] {{{ $ mkdir ~/work/mydroid $ cd ~/work/mydroid $ repo init -u http //android.git.kernel.org/platform/manifest.git -b eclair ... $ repo sync ... }}} 1. Linux kernelのダウンロード[[BR]] {{{ $ mkdir kernel $ cd kernel $ git clone git //android.git.kernel.org/kernel/common.git ... $ git clone git //android.git.kernel.org/kernel/linux-2.6.git ... $ git clone git //android.git.kernel.org/kernel/omap.git ... $ git clone git //android.git.kernel.org/platform/vendor/asus/eee_701.git ... $ repo sync ... }}} 1. ダウンロード結果 {{{ $ cd ~/work/mydroid $ ls -aF ./ Makefile build/ development/ hardware/ prebuilt/ vendor/ ../ bionic/ cts/ external/ kernel/ sdk/ .repo/ bootable/ dalvik/ frameworks/ packages/ system/ $ du -s 5703292. }}} 1. ビルド {{{ $ source ./build/envsetup.sh $ choosecombo 1 1 generic 3 $ make ... $ }}} }}} == x86 on VMware用パッケージのインストール == 参考 [http //arms22.blog91.fc2.com/blog-entry-254.html なんでも作っちゃう、かも。x86 Android Donut on VMware] 1. イメージファイルの変換に必要なパッケージのインストール {{{ $ sudo apt-get install qemu }}} 1. ソースコードの取得 {{{ $ cd ~/work $ mkdir android-x86 $ cd android-x86 $ repo init -u git //git.android-x86.org/android-x86/platform/manifest.git -b eclair-x86 ... $ repo sync ... }}} 1. 差分ファイルの取得[[BR]] ビルドに必要なソースがリポジトリから削除されているので([http //groups.google.com/group/android-x86/browse_thread/thread/acd93d7d702c5de9?pli=1 参考Topic])、削除前の[http //android.git.kernel.org/?p=platform/frameworks/base.git;a=snapshot;h=0c33ed2992b2eb484c229fd3322df14d97c10caa;sf=tgz スナップショット]をダウンロードし、展開後、frameworks/base/tools/layoutlib/api/*部分をコピーする。(以下は、「~/temp/downloads」にダウンロードした場合の例) {{{ $ cd ~/temp/downloads $ tar zxvf base-0c33ed2992b2eb484c229fd3322df14d97c10caa.tar.gz $ cp -r base/tools/layoutlib/api/ ~/work/android-x86/frameworks/base/tools/layoutlib/ $ cd ~/work/android-x86 $ du -s 4040996. }}} 1. ソースの修正 a. Bluetoothの有効化[[BR]] ./build/target/board/generic_x86/init.rcスクリプト中のbluetoothdサービス起動部分のdisabled設定をコメントアウトする。 {{{ service bluetoothd /system/bin/bluetoothd -n socket bluetooth stream 660 bluetooth bluetooth socket dbus_bluetooth stream 660 bluetooth bluetooth # init.rc does not yet support applying capabilities, so run as root and # let bluetoothd drop uid to bluetooth with the right linux capabilities group bluetooth net_bt_admin misc # disabled }}} 1. USB起動用のイメージファイルとしてビルド[[BR]] ※初回makeでエラー停止した場合、再度makeすると通る場合あり。 a. デフォルトカーネルを使用する場合 {{{ $ make usb_img TARGET_PRODUCT=eeepc }}} a. カーネルをカスタムビルドする場合 {{{ $ make usb_img TARGET_PRODUCT=eeepc TARGET_KERNEL_CONFIG=my_defconfig }}} a. 既にビルド済みのカーネルを使用する場合 {{{ $ make usb_img TARGET_PRODUCT=eeepc TARGET_PREBUILT_KERNEL= path to the prebuilt kernel }}} 1. 仮想ディスクイメージファイルの作成 {{{ $ cd out/target/product/eeepc $ qemu-img convert eeepc_usb.img -O vmdk installer.vmdk }}} 1. VMwareの新規仮想マシンを作成 1. 「後でOSをインストール」を選択し、「次へ」を押下する。 1. ゲストOSは「Linux」を選択する。 1. バージョンは「他のLinux2.6.xカーネル」を選択し、「次へ」を押下する。 1. 仮想マシン名を適当に作成する(例.「Android Eclair on x86」)し、「次へ」を押下する。 1. ディスク最大サイズを設定する(例.4.0GB)。 1. 「仮想ディスクを単一ファイルとして格納」を選択し、「次へ」を押下する。 1. 「完了」を押下する。 1. VMwareのディスク設定を追加・変更 1. 上記で作成したディスクをscsi0 0からide0 0に変更する。 1. vmxファイルを開いて以下の行を追加する。ide0 0がprimary master、ide0 1がprimary slave。なお、「bios.bootDelay」は、電源On時にBIOS Setup画面に移行するためのF2キー押下を容易にするための設定。 {{{ ide0 1.present = "true" ide0 1.fileName = "installer.vmdk" bios.bootDelay="3000" }}} 1. ビルドした仮想ディスクイメージファイル(installer.vmdk)をvmxファイルと同じフォルダにコピーする。 1. VMwareの仮想ハードディスクにAndroidをインストール 1. VMwareを起動し、BIOS設定を変更して、IDEのprimary slave(PS)からBOOTする。 1. AndroidのInstallを選択する。 1. 検出されたHard Diskにパーティションを作成し、ext3でフォーマットする。 1. インストールディスクの削除 1. vmxファイルを開いて次の行を削除する。 {{{ ide0 1.present = "true" ide0 1.fileName = "installer.vmdk" }}} 1. 起動確認[[BR]] VMwareを再生し、Androidが起動することを確認する。