約 5,024,766 件
https://w.atwiki.jp/ohden/pages/319.html
Android関係の情報 参考になるサイト http //developer.android.com/ http //source.android.com/ http //android-developers.blogspot.jp/ https //sites.google.com/site/androyerjapan/ http //techbooster.org/category/android/ http //www.adakoda.com/android/ http //wikiwiki.jp/android/ ~アプリ作成~ ネタ ~環境構築~ ■ Android Studio Android Studio Beta ■ Android SDK 開発環境構築 【old】開発環境構築 for Win 【old】開発環境構築 for Linux repo ■ Titanium Studio http //preview.appcelerator.com/studio/ ■ PhoneGap ~Androidアプリ開発のtutorial的なものを書き綴っていくつもり~ Applicationの基本 Activityデザインの基本 エミュレータの使い方 Android/tutorial/ ~tips~ Androidのsource取得とbuild debugしたい時のつなぎ方 Android用makefileの書き方 Linuxアプリケーションの簡単な移植方法 Unicodeの使い方 セーフモードの入り方 apkファイルの解析方法 SDカードにコピーできない ~注意~ ndk-buildについて Android/tips/ ~Application~ busybox Androidのlibcとは Linux環境で多く使われてるC lib(GNU libc)とは互換性が無い。 Androidに使われているlibcは『Bionic libc』と言う。 Bionic libcとは Androidに使われているC lib。 Android用にカスタマイズされたlibのため、通常のC lib以外にAndroid専用の機能が追加されている。例えばシステムプロパティ取得機能、デバッグ時のlog出力機能。 Bionic libcは組込み向けに最適化されて提供されているので、GNU Libc(通常のLinux環境で使われているC lib)との互換性は無い。 つまり、LinuxのNativeCodeアプリケーションをAndroidへ移植する場合、使っている外部libを含めて、全てBionic libcでbuildし直す必要がある。 当然libraryも互換性が無いため、通常GNU Libcが見に行く『/usr/lib』『/usr/include』ではなく、Android NDKに用意された uClibc 組込み向けLinux向けのC library。標準的なlinuxで使われているglibcに比べて非常に小さくなっているが、機能もかなり削られている。 BionicとuClibcの関係が不明。 OABI Old Application Binary Interface Debianでは『arm』と記述されているらしい。EABIの方は『armel』と記述されるらしい。 浮動小数点演算にハードが持っている浮動小数点演算ユニットを用いる。当然ユニットが有ると高速に動作するが、無いとペナルティ(例外処理,コンテキストスイッチ)がものすごいらしい。 EABI Embedded Application Binary Interface Debianでは『armel』と記述されるらしい。OABIの方は『arm』と記述されるらしい。 浮動小数点演算については浮動小数点演算ユニットを持っていようがいまいが、ソフトウェアで解決する。 ※浮動小数点演算用の関数があるらしい。 そのため、コプロを用いた場合よりは遅くなるが、浮動小数点演算ユニットが無いチップでもそれなりの速度で浮動小数点演算を行える。 基本的にOABI互換。 Hardware ハードウェアメモ ZENITHINK e-PAD(ZT-180) REGZA Phone IS04 ALLDOCUBE iPlay7T ALLDOCUBE iPlay8T BMAX MaxPad I11 利用周波数帯 Type Frequency d a s r LTE b1 2.0 GHz ○ ○ ○ b3 1.7 GHz ○ ○ ○ ○ b8 900 MHz ○ b11 1.5 GHz ○ ○ b18 800 MHz ○ ○* b19 800 MHz ○ b21 1.5 GHz ○ b26 800 MHz ○ ○* b28 700 MHz ○ ○ b42 3.5 GHz ○ ○ ○ 5G n3 1.7 GHz ○ n28 700 MHz ○ ○ n77 3.7 GHz ○ ○ ○ n78 3.7 GHz ○ ○ n79 4.5 GHz ○ n257 28 GHz ○ ○ ○ ○ *auローミング Geekbench5 Device CPU COMPLETE https //browser.geekbench.com/v5/cpu/7254252 https //browser.geekbench.com/v5/cpu/7268088 https //browser.geekbench.com/v5/compute/2638247 https //browser.geekbench.com/v5/cpu/7268094 https //browser.geekbench.com/v5/compute/2638255 Device SoC Memory Single Multi BMAX i11 UNISOC T618(6x1.8GHz, 2x2.0GHz) 8GByte 369 1237 iPhone12 mini Apple A14 Bionic(6x3GHz) 4GByte 1583 3900 AQUOS sense6(SH-M19) Snapdragon 690 5G(6x1.7GHz, 2x2.0GHz) 6GByte 582 1682 AQUOS sense4 lite(SH-RM15) Snapdragon 720G(6x1.8GHz, 2x2.3GHz) 4GByte 549 1626 iPhoneSE(2016)1Gen Apple A9(2x1.8GHz) 2GByte 561 1047 iPhone5s Apple A7(2x1.3GHz) 1GByte 277 513 Amazon Fire HD 10(2019) KFMAWI MediaTek MT8183(2.0GHz) 2GByte 263 793 ALLDOCUBE T701 UNISOC SC9832E(4x1.4GHz) 2GByte 119 403 SHARP SHV34 Snapdragon 820 MSM8996(2x1.6GHz, 2x2.1GHz) 3GByte 238 626 Xperia XZ2 Compact(H8324) Snapdragon 845(4x1.8GHz, 4x2.8GHz) 4GByte 508 2256 Xperia Z4 Snapdragon 810 MSM8994(4x2.0GHz, 4x1.5GHz) 3GByte 518 2277 Asus MeMO Pad FHD10(ME302KL) Atom Z2560(2x1.6GHz) 2GByte 97 362 pickup対象が適当で、変な数値の取ってるかもしらん...今度見直す。 更新日: 2022年05月30日 (月) 15時37分44秒 http //www.embedded.jp/ 日本の組込情報 -- (s1n) 2011-03-02 14 42 18 『chcp 65001』 adbでの文字化け回避方法 -- (s1n) 2011-03-17 18 06 47 http //unity3d.com/japan/ unity game engine -- (s1n) 2012-03-28 15 22 29 titanium http //d.hatena.ne.jp/r_kurain/20110306/1299393778 -- (s1n) 2012-03-28 15 23 17 Android4.0:http //www.atmarkit.co.jp/fsmart/articles/android33/01.html Android4.1:http //www.atmarkit.co.jp/fsmart/articles/android26/01.html -- (s1n) 2012-11-20 18 18 24 http //www.atmarkit.co.jp/ait/articles/1209/19/news138.html Greeのソシャゲ-用フレームワーク -- (s1n) 2012-11-20 18 24 49 Android3.xからRenderScriptでLLVMの技術が使われてるらしい。 LLVM、AOT、JIT、辺りがキーワード? -- (s1n) 2012-12-12 13 58 29 http //blog.kmckk.com/archives/4036235.html -- (s1n) 2012-12-12 13 58 49 genymotion 軽いAndroidエミュレータ -- (s1n) 2014-03-07 19 31 49 https //snack.expo.io/ web上で完結する開発環境 -- (s1n) 2018-09-18 09 23 12 名前 コメント すべてのコメントを見る
https://w.atwiki.jp/kplus/pages/77.html
Android 概要 Googleが開発した、Dalvik VM 上で動作するアプリケーション。 (OSではない) ベースはLinuxだが、VMware上ではFreeBSDとして判断されるなど、 その中身は全てLinuxベースではないことがわかる。 開発 基本は、言語はJava、ツールはEclipse。 しかし現在はC#などでも開発ができる環境がある。ツールはNetBeans やその他ツールで開発が可能となっている。 仕組みが独特なのが慣れにくくしている点であるが、多くはAPIが 用意されているので難しいわけではない。 歴史 OS API レベル シェア Android 4.1 16 0.8% Android 4.0.3 - 4.0.4 15 15.8% Android 4.0 - 4.0.2 14 0.1% Android 3.2 13 1.8% Android 3.1 12 0.5% Android 3.0 11 Android 2.3.3 - 2.3.7 10 60.3% Android 2.3 - 2.3.2 9 0.3% Android 2.2 8 15.5% Android 2.1 7 4.2% Android 2.0.1 6 Android 2.0 5 Android 1.6 4 0.5% Android 1.5 3 0.2% Android 1.1 2 Android 1.0 1 参考 Android - Wikipedia http //ja.wikipedia.org/wiki/Android
https://w.atwiki.jp/fujiyan/pages/38.html
(作成中) WebコミックLibraryhttp //web-comi.appspot.com/GAE/JとSlim3で作成してみた、各出版社から配信されているWebコミックをまとめて閲覧できるサイトです。只今、実験運用中… 参考サイト 公式サイト Androidで動く携帯Javaアプリ作成入門 Tech Booster 逆引きAndroid入門 ActivityとView 参考 Android Developers 世界を目指せ!Androidアプリ開発入門 Activityは、画面を表す。 ViewはUIを構成する部品。ActivityにViewを設定することで、画面を構築する。 Viewの構成方法は2つ(静的)レイアウトXMLを記述してコンパイルしたものを設定。お手軽。通常はこっち (動的)Viewオブジェクトを適宜生成して設定。前もって作成するViewが決まらない場合はこっち。 XMLでViewを定義 res/layout以下に.xmlファイルを作成 作成すると、R.layout.[ファイル名]という定数名で、作成したViewを表すIDが定義される(ファイル名がmain_layout.xmlなら、R.layout.main_layoutという定数が定義される)。 定義されたIDをActivity#setContentView()に渡す。 複数のView定義が必要な場合は、その分だけxmlファイルを作れば良い。 画面切り替え 参考 アンドロドロ バックボタンで前画面に戻したい場合はActivity切り替えで実装。バックボタンを押すと、アクティブなActivityに対してfinish()が呼び出され、直前のActivityがアクティブになる。ブラウザの「戻る」感覚だろうから、こっちが通常なんでしょう。 グローバルリソース(カメラ等)の取得/解放は、よほどの事情が無い限り、onResume()/onPause()で行うこと。でも、カメラでよくやるような、SurfaceHolderのsurfaceCreated()/surfaceDestroyed()は、Activity切り替え時のタイミングで呼ばれるっぽいので、ここでカメラの取得/解放を行っても大丈夫っぽい(あやふや)。 Activityを2つ用意するのか、1つのActivity内でViewFlipperを使うかは悩み中。多分、メモリ管理を細かく制御して、OSに負担を掛けないようにするのはActivity2つなんでしょう。次画面のActivity起動時に次画面用のリソースを取得、前画面のリソースを解放とか、onStop()/onRestart()でリソースの一時解放/再取得とか。 ViewFlipperの場合は、全ての画面のリソースをまとめてメモリにロードするんじゃないかと。 アプリケーションの終了 単一Activityの場合はfinish()で良い。 複数Activityの場合は、最後に開始したActivityから順次finish()していき、最後にroot Activityをfinish()させるのが良いと思う。これは、Activityはスタックに詰まれていくことに由来。LIFOでfinish()していく。 多分、ActivityからTaskを終了させる方法は無い。何故なら、Activityは、さまざまなTaskから呼ばれることを想定しているため、自分を呼んだTaskを勝手に終了させるわけにはいけないから、かと。 moveTaskToBack()でTaskをバックグラウンドに追いやって、そのうちOSに掃除してもらう、という方法もある。こっちがAndroidの標準だ、という話もあるけど、何となく、うーん。だって、この方法だと、再起動したときに、前の状態から開始されてしまうし…。 moveTaskToBack()はあくまで「中断」であり、「終了」はやっぱり地道にfinish()していくべきだと思うの 一般的な実装としては、startActivityForResult()でchild Activityを開始し、child Activityの終了後に呼ばれるonActivityResult()で、自身もfinish()する System.exit(0)で終わらせてはゼッタイダメ。 カメラ(Android 2.1 API Level 7) AndroidManifest.xmlの記述 参考 プログラマのネタ帳 uses-permission android name="android.permission.CAMERA" / uses-feature android name="android.hardware.camera" / uses-feature android name="android.hardware.camera.autofocus" / uses-feature android name="android.hardware.camera.flash" / uses-permissionで、カメラ利用の許可が必要であることを宣言し、残りの3つでカメラ、オートフォーカス、フラッシュの機能を使用することを宣言します。 また、Activityの属性に下記を追加。 android screenOrientation="landscape" android theme="@android style/Theme.NoTitleBar.Fullscreen" screenOrientationの設定は、なんか、カメラは水平でしか使えないらしいため…。 themeの設定は、アプリをフルスクリーン表示にするため。カメラアプリは基本的にフルスクリーン。 MediaStore.Images.Media.insertImage()で保存すると画質が落ちる 参考 日本Androidの会 画像を加工しない場合は、生成されたjpegデータをそのまま保存する。 // Camera#takePicture()の第3引数に渡す、コールバックオブジェクト private Camera.PictureCallback pictureListener = new Camera.PictureCallback() { public void onPictureTaken(byte[] data, Camera camera) { try { insertImageToMediaStore(data); } catch (IOException e) { throw new RuntimeException(e); } //後処理を記述 } }; // dataに格納されたjpegデータを保存 private void insertImageToMediaStore(byte[] data) throws IOException { ContentResolver resolver = getContentResolver(); ContentValues values = new ContentValues(); values.put(MediaStore.Images.Media.MIME_TYPE, "image/jpeg"); values.put(MediaStore.Images.Media.DATE_TAKEN, System.currentTimeMillis()); Uri uri = resolver.insert(MediaStore.Images.Media.EXTERNAL_CONTENT_URI, values); ByteArrayInputStream in = new ByteArrayInputStream(data); try { int size; final int BUFFER_SIZE = 8192; byte[] buffer = new byte[BUFFER_SIZE]; BufferedOutputStream out = new BufferedOutputStream(resolver.openOutputStream(uri)); try { while ((size = in.read(buffer, 0, buffer.length)) 0) { out.write(buffer, 0, size); } out.flush(); } finally { out.close(); } } finally { in.close(); } } 画像を加工して保存 参考 Androidのあ~ん rTAKI0329's android ブログ グロブ(OutOfMemoryで落ちる件) なんか、下の方法みたいに、カメラの撮影サイズでBitmapの別インスタンスを生成すると、メモリ不足で落ちるっぽいぞ…。エミュレーション環境では普通に動くけど、実機でカメラ撮影後に突然落ちるような場合は原因の一つとして疑ってみてもいいかも コールバックメソッドに渡されるjpegデータをBitmapに変換して、Canvasで描画をする。その後、Bitmapをjpegで保存する。 jpeg→ビットマップ→jpegの変換を行うので、画質が落ちたり、ファイルサイズが増えたり…。 BitmapFactory.decodeByteArray()で作るBitmapがimmutableなため、copy()でmutableなBitmapを再作成する。API Level 11なら、decodeByteArray()のオプションでmutableなBitmapを直接作れるかも? // Camera#takePicture()の第3引数に渡す、コールバックオブジェクト private Camera.PictureCallback pictureListener = new Camera.PictureCallback() { public void onPictureTaken(byte[] data, Camera camera) { Bitmap orgBmp = BitmapFactory.decodeByteArray(data, 0, data.length); Bitmap bmp = orgBmp.copy(Bitmap.Config.ARGB_8888, true); Canvas canvas = new Canvas(bmp); // canvasで描画 try { insertImageToMediaStore(bmp); } catch (IOException e) { throw new RuntimeException(e); } camera.startPreview(); } }; // Bitmapをjpegで保存 private void insertImageToMediaStore(Bitmap bmp) throws IOException { ContentResolver resolver = getContentResolver(); ContentValues values = new ContentValues(); values.put(MediaStore.Images.Media.MIME_TYPE, "image/jpeg"); values.put(MediaStore.Images.Media.DATE_TAKEN, System.currentTimeMillis()); Uri uri = resolver.insert(MediaStore.Images.Media.EXTERNAL_CONTENT_URI, values); BufferedOutputStream out = new BufferedOutputStream(resolver.openOutputStream(uri)); try { bmp.compress(Bitmap.CompressFormat.JPEG, 100, out); out.flush(); } finally { out.close(); } } GPSとジオコーディング(Android 2.1 API Level 7) LocationManagerを取得する。 LocationManager lm = (LocationManager) getSystemService(Context.LOCATION_SERVICE); onLocationChanged()が呼ばれなくなる 参考 A Day In The Life LocationManager#removeUpdates()を呼ばずにActivityを終了させると、次回起動時にonLocationChanged()が呼ばれなくなるらしいです。必ず呼びましょう。 配布と署名 アプリケーションはapkファイルにパッケージングして配布する。 署名付きapkファイルじゃないと、端末にインストールされません。 署名のためのkeytool使用法 参考 Android Developers keyalgで指定するアルゴリズムはDSAとRSAがサポートされているらしい。通常はRSAにしておきましょう。 keysizeについては2048以上を推奨とされています。 validityで指定する有効期限については、10000日以上を推奨されています。 ということで、推奨されるkeytoolのオプションは keytool -genkey -v -keystore [keystoreファイル名] -alias [エイリアス] -keyalg RSA -keysize 2048 -validity 10000 1つのkeystoreに対して、複数の鍵を生成できる。keystoreの中で、鍵を識別するためにエイリアスを用いる。 なので例えば、keystoreファイル名はワークスペース名、エイリアスはプロジェクト名(=アプリケーション名)、みたいな感じにすると良い(あくまで例)。 keytool -genkey -v -keystore workspace.keystore -alias app1 -keyalg RSA -keysize 2048 -validity 10000 keytool -genkey -v -keystore workspace.keystore -alias app2 -keyalg RSA -keysize 2048 -validity 10000 keystoreファイルやパスワードは失くしたり忘れたりしないようにね あれ、keytoolいらなくね?(ADT Plugin for Eclipseがあれば) apkを作成したいアプリのプロジェクトのルートのコンテキストメニューから、[Export...]→[Android]-[Export Android Application]を選択する。 [Project Checks]で、何もエラーが無いことを確認して[Next ] [Keystore selection]では、最初にkeystoreファイルを作る場合は[Create new keystore]を選択[Location]には、keystoreファイルのフルパスを入力失くさないように、ワークスペース内に、keystoreファイル格納用のプロジェクトを作成し、そこに作成すると良いかも。 [Password]と[Confirm]には、keystoreファイルにアクセスするためのパスワードを入力する。 [Key Creation]では、下記を入力[Alias]には鍵のエイリアスを入力。まぁ普通はアプリケーション名 [Password]と[Confirm]には、鍵にアクセスするためのパスワードを入力する。 [Validity]には年を入力するので注意。推奨は25年以上です。 [First and Last Name]から[Country Code (XX)]については、どれか1つにでも入力すればOK。 [Destination and key/certificate checks]では、下記を入力[Destination APK file]に、出力するapkファイルをフルパスで入力。 あらまぁ簡単
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/anddoid/pages/34.html
android id 要素 関連タグ 使用例 android id="@+id/test"
https://w.atwiki.jp/smartfone/pages/14.html
Android - Open Handset Alliance プロジェクト Androidオフィシャルサイト SDKダウンロード ウィキペディア Android Wikipedia Android
https://w.atwiki.jp/katsuhiro/pages/20.html
android SDKのインストール エラーになったときは settings→「Force https //...sources to be fetched using http //...」にチェック Eclipseライブラリ https //dl-ssl.google.com/android/eclipse/
https://w.atwiki.jp/aniwotawiki/pages/50308.html
登録日:2022/01/23 Sun 16 25 57 更新日:2024/09/09 Mon 11 03 20NEW! 所要時間:約 4 分で読めます ▽タグ一覧 Android Google Linux OS アニヲタIT教室 オペレーティングシステム オープンソース スマホ スマートフォン ドロイド君 Androidとは、スマートフォン等のモバイルデバイスに用いられるOS(オペレーティングシステム)の一種。 2023年時点の正式な最新バージョンは「14」。 【概要】 Apple社が送り出したiPhoneの対抗勢力として登場した、モバイル向けのOS。 当初はそのまんまAndroid社が開発していたが、2005年にご存知Google先生が子会社化。 今ではiOSと勢力を二分する程の代表的なプラットフォームとして海外ではiPhoneより普及しているとも言われ、 少なくとも日本ではiOS(iPhone/iPad)かこちらの二択になる程の普及率を誇る。 と言うかiPhone以外のスマートフォンはほぼAndroidしか選択肢が無い。 もしデベロッパーにも興味があるなら、システムイメージやドライバ関係を公式配布しているGoogle純正のPixelシリーズで探すのが一番無難。 これらは過去のバージョンに戻すことも非常に簡単でアップデートの頻度も高く普段遣いでも優秀だ。新しいバージョンの度に実験台にされるので、ある意味では不安定とも言えるが。 【iOSとの比較】 iOSとの大きな違いといえばやはり開発者向けのポータルやマニュアルの豊富さと、カスタマイズ性の高さ。 ベースのLinuxだけではスマホの部品やアプリに対応しきれず、他のオープンソースのプログラムを色々追加したらしい(*1)ので、厳密にはUbuntuやMintなどの遠い親戚といったところだが、Linux同様中核部分もオープンソースとして広く開放されている。 iPhoneがあまり手を付けないエントリー仕様や電池持ち重視の低スペックから、メモリやCPU等ガン積みしたハイエンドスマホも可能で、やろうと思えばアプリは勿論、オリジナルのOSすら制作できる。一部のメーカーは実際に独自のAndroid系OSを開発して自社製スマホと共に命名していることも少なくない。 もっともPCや市販のデバイスで動くように最適化する必要があるので、動作が不安定にもなりやすい。 その開発の門戸の広さと裏腹に、一方でガラケー天下の日本でこれに乗り換えようとしたメーカーは大半が扱いきれずに消えていった悲劇も忘れてはならないだろう。 ハードウェアがまだガラケー水準、かつソフトウェア自体も黎明期だったことから、フリーズ、熱暴走、電池切れといった重大な不具合が頻発し、ここで匙を投げた大手携帯メーカーも多かったのである。 特に実機のガクガクした挙動を経験した人なら、同時期のiPhoneや今のAndroidのスムーズな動作が如何にありがたいものかわかるであろう。 安物からハイエンドまでカバーできるのがAndroid、お高くはなるが相応の性能や品質を約束してくれるのがiPhoneといったところだろう。 【亜種】 Android TV 文字通り、AndroidをベースのOSとして作られたテレビ及びそのソフトウェアのこと。 テレビというよりもテレビサイズのタブレットにアンテナ差し込み口とフルセグが付いたものと言ったほうが近いかも。 Android GO マップと位置情報を利用したゲーム…ではなく、超低スペックなデバイスでも動かせるように開発された、軽量版のAndroid。 ストアにある「GO」と付いたアプリはこれ向けのもので、通常版よりも更にシンプルで軽いのが特徴。 【用語・小ネタ】 スマホやタブレットの基本的な使い方は各々で覚えて頂くとして、ここではAndroid独自の特徴やよく見る用語などを独断と偏見で紹介。 ・ランチャー 武器ではなく、ロックを解除してすぐに出てくる待ち受け画面のこと。PCで言うデスクトップ。 デフォルトのものが気に入らなければ、ストアから無料も含めて多数あるものをダウンロードして置き換えられる。 あのマイクロソフト製のもあるよ! ・GooglePlayストア Androidのアプリをダウンロードする為の公式ストア。 実はこれを使わずにネットに落ちているインストーラを使ってもアプリをインストールできる。 しかし開発のしやすさがそのままウイルス等にも繋がっているので、油断は禁物。 ・AOSP 「Android OpenSourse Project」の略。要するに変な改造がされていない純粋なAndroidを開発する公式ポータルのこと。ちなみにGoogleのプレイストアすらも入っていない。 ・開発者向けオプション 普通に使う分にはほぼ縁が無いであろう、専門的な設定を弄れる隠し項目。隠しコマンドとしてデバイス情報の「ビルド番号」を連打すると表示されるようになる。怖くなってもすぐオフに戻せるのでご安心を。 代表的な項目としては画面のアニメの速度を変えたり無効にできる「○○アニメスケール」。画面描画をソフトウェアでなくGPUに多く負担させることで処理が速くなる「GPUレンダリング」「HWオーバーレイを無効」が有名か。 重いスマホを復活させる手段としてよく挙がるが、大抵電池の減りも早くなるので一長一短だったりする。 ・fastboot 電源を入れようとしたら突然画面が出てきてビックリした人も多いかもしれない。 PCで言うところのBIOSメニューに該当する。機種によって変わるが一般的に呼び出し方は「電源ボタンと音量−を長押し」。 ただこの画面だけでは殆ど操作できないので、基本はPCとつないで操作する。 ・ADB PCからコマンドライン入力でデバイスを操作できるデバッグ用のツール。 導入するのはひと手間かかるが、コマンドプロンプト(もしくはPowerShell)を弄れる人ならここからアプリをインストールしたりリカバリーしたりアップデートしたりも可能。 ・root権限 権限が取得できると通常では使えない設定やアプリもできるようになる管理者権限のこと。OSがバグりかねないレベルの深い設定やアプリが使えないように大抵はロックされている。 調べると取得方法が出てくることがあるが、「脱獄」という俗称があるように、基本的に改造と同じ扱いとなるので自己責任。メーカーの修理なども受けられなくなる(改造行為を禁じているため)。 普通は弄れない一部の通知や特殊な項目も自在に操れるが下手に弄ると不具合が出たり最悪動作しなくなる(所謂文鎮化)ので、不便で仕方ないなどの理由がない限りは極力ロックしたまま使うことをオススメする。 以前発売されていた『Google Nexus』シリーズは最初からその手の人が買うことが前提で、ブートローダーがフリーになっていた。 後継機種であり、ピュアアンドロイドを標榜する『Google Pixel』シリーズも、割と簡単にブートローダーのアンロックを解除可能になっている。 ・イースターエッグ これも隠し小ネタの一つ。 端末情報のAndroidバージョンの項目を数回タップすると隠し画像を見たりミニゲームをプレイすることができる。 ・お菓子のコードネーム Androidのバージョンには、数字と一緒にお菓子の名前がコードネームとして付けられていることがある。 アルファベット順に頭文字の合うものが選ばれており、例えばバージョン9なら「Pie(パイ)」、13なら「Tiramisu(ティラミス)」、14なら「Upside Down Cake(アップサイドダウンケーキ)」。10~12(Q~S)の名前は付かなかった模様。 さらに「Kit Kat」や「Oreo」と付いたこともある。 ・恐竜ゲーム Androidの標準ブラウザは「Google Chrome」であるが、Chromeにもイースターエッグがある。 ネットワークに繋がず立ち上げるか、chrome //dinoをアドレスバーに入力すると、ドットの恐竜が表示されるが、実は彼をタッチするとちょっとしたミニゲームができる。 走る彼をジャンプさせて鳥やサボテンといった障害物を避け、どこまで走れるかチャレンジするというもの。 もちろんAndroid版Chromeにもしっかり存在する。 ・AmazonのFireタブレット 標準だと「Amazon アプリストア」しか使えないが、 OS自体はAndroidなので追加でPlayストアを入れることが可能(あくまで非公式な手法なので自己責任でお願いします)。 ・カスタムROM 上で書いた通りAndroidはオープンソースなので、AOSP製のソースコードを基にしたサードパーティ製のOSも基本的に無償で入手することができる。 脱獄する以上に上級者向け…というか文鎮化すると困るようなメインのスマホなんかで試すのはまず論外として、古いバージョンのままアップデートが止まってしまったタブレットや引退したスマホを復活させる手段には一応使える。 「XDAフォーラム」といった有志のポータルがボランティアで開発している場合がほとんどだが、そのメンバー個人でリリースしたバージョンも多数出回っている。 古い機種を復活させる点に特化したり、PixelシリーズのUIを再現してみたり(というかAOSPの時点でほぼそのまんま)といった面白い特徴のOSもあったりするので興味があれば調べてみるのも面白い。 追記・修正はAndroidのGoogleChromeからお願いします。 ※以下、本wikiにおける注意点(最近直ったっぽい) 「うんしょ、うんしょ…ふう、追記・修正ひと段落。……ひっ!ご、主人様!それは所要時間30分超の項目では!」 「いや、ええっとその…私めはエントリーモデルですのでつまり、そのー…お、重すぎてクラッシュの原因にもなりますので編集はお控えいただけると…」 「えっ、た、確かに一応私、メインメモリ6GB積んだミドルスペックですけど…あっ!またプチフリが…」 「うう…こればかりはどうしてかは私めにもわかりかねます。ですからパソコンをお使いになられるか、せめて編集はゆっくりと…あああ、イライラしてる…」 「ら、らめ、れ…す…ごしゅじん、さま…変換やバックスペースをそんなに連打するとわたしも、もももうだめえぇぇぇ……ガクッガクッ」 「Chrome」は応答していません。 アプリを終了する 待機 フィードバックを送信 △メニュー 項目変更 この項目が面白かったなら……\ポチッと/ -アニヲタWiki- ▷ コメント欄 [部分編集] Linuxの系譜とは言いつつもディストリビューションではない あとCyanogenModとかFire OSとかは記述したほうがいいのかな? -- 名無しさん (2022-01-23 21 11 04) 最初期は確かデジカメ用のOSとして開発されてたんだっけ。昔Android搭載デジカメとかあったけどある意味先祖返りだったのかな… -- 名無しさん (2022-01-24 07 05 36) このOSのスマホとPC繋げてチビチビデータ移動するのが癒しの時間 -- 名無しさん (2022-01-24 21 55 53) ↑ わかる -- 名無しさん (2022-01-24 22 39 41) イースターエッグ見てマジで!?って思って実際やってみたら、マジで別画面になった。ミニゲームって程の物じゃなかったが文字が動かせた。 -- 名無しさん (2022-06-17 15 38 15) イースターエッグを知らずに起動させた事が1回だけあってウチのスマホ壊れたんかなと勘違いしたことがあった。その時のイースターエッグの内容がZonbie Artだったから尚更怖かった -- 名無しさん (2022-08-26 11 36 03) Androidって元ネタ男なのか、じゃあ女体化は事実上性転換だな -- 名無しさん (2022-08-27 09 37 11) GoogleNowランチャー(Google純正品)が無くなった今では、意外かもしれないけど記事で挙げられているMS製ランチャーが操作感がGoogleNowランチャーに近くて気に入っている -- 名無しさん (2023-11-05 22 09 52) 名前 コメント
https://w.atwiki.jp/programhack/pages/15.html
Android関連 AlertDialogをモーダルにする setCancelableメソッドをfalseにすることで、戻るボタンやダイアログ以外の場所をクリックされても ダイアログが閉じないようにできる 参考サイト ダイアログは永遠に(1) - AlertDialog http //ichitcltk.hustle.ne.jp/gudon/modules/pico_rd/index.php?content_id=51 画像を扱う際のOutOfMemory対策 androidではメモリが少ないため、すぐメモリリークが起こる。 そのため、普段よりもメモリを気にして開発することが必須になる。 参考サイト Androidにおける画像の取扱い http //lablog.lanche.jp/archives/192 一定時間で自動的に閉じるポップアップ String msg1 = Util.getString((Context)thisActivity,R.string.M120); final AlertDialog dialog = new AlertDialog.Builder((Context)thisActivity) .setTitle(Util.getString((Context)thisActivity,R.string.I000)) .setMessage(msg1) .create(); Handler handler = new Handler(); Runnable r = new Runnable() { public void run() { dialog.dismiss(); setResult(RESULT_OK); finish(); } }; dialog.show(); handler.postDelayed(r, 5000); ちょっとしたポップアップ 以下でポップアップを表示できる Toast.makeText(context, "なんかの文字", Toast.LENGTH_LONG).show(); ソフトウエアキーボード制御 キーボードでテキストボックスが隠れないように 実装したかったができなかった。 ↓これを参考にしたが、だめorz http //ssnohibi.blog122.fc2.com/blog-entry-121.html 参考にしたサイトをあげておく。 参考 http //blog.global-eng.co.jp/android/2011/06/03/%E3%82%BD%E3%83%95%E3%83%88%E3%82%AD%E3%83%BC%E3%83%9C%E3%83%BC%E3%83%89%E3%81%AE%E5%88%B6%E5%BE%A1/ http //ssnohibi.blog122.fc2.com/blog-entry-121.html ライフサイクル Activityイベントが呼ばれる順番。 参考 TechBooster 図解Androidのライフサイクルとプラットフォーム http //techbooster.jpn.org/andriod/environment/323/ ソフトキーボード表示時、画面タッチでキーボードをしまう InputMethodManagerのhideSoftInputFromWindow()を使用。 対象のEditTextに適用する InputMethodManager inputMethodManager = (InputMethodManager)act.getSystemService(Context.INPUT_METHOD_SERVICE); //ソフトキーボードを閉じるように設定 for(int txtId txtIdArray){ EditText txt = (EditText)lil.findViewById(txtId); inputMethodManager.hideSoftInputFromWindow(txt.getWindowToken(),0); } strokeタグを利用して枠線を描画することができます。 「android width」にて枠線の幅を設定 「android color」にて線の色を設定 corners にて枠線の角の設定を行います。 paddingにて描画領域を内側に寄せます。 枠線に内側のビューが重ならないように、枠線の幅の分はpaddingで寄せるようにします。 solid にて枠線の内側の塗りつぶしを行います。 shapeタグを使用することにより、グラデーションや枠線、角丸などの効果を持った背景形状を定義できます。 画像の色からカラーコードを調べる方法 ペイントで画像を開いて、スポイトのマークで吸い取ったら 色→色の編集→色の作成 に吸い取ったカラーのRGB値(10進数)が出てます。 それをRGBの順で16進数になおしてつなげる OnTouchListenerのonTouchイベント戻り値 押しっぱなしのとき、falseを返すと一度で処理が終わるが、 trueを返すとまた処理に入る widgetを非表示にして詰める方法 TextView txt = (TextView) findViewById(R.id.txt); txt.setVisibility(View.GONE); ↑消したいやつにGONEを指定すると、非表示にして詰めるようにできる。 OutputStream#write(int) バッファ使用 めっちゃ速さが変わる!!! 以下参考↓ http //d.hatena.ne.jp/guangda/20100129/1264746893 java高速化方法 http //adgjm.net/its/java/pa.htm android キャプチャ取り方 eclipseでDDMSタブのDevicesタブにある対象の端末を選択し、 カメラのアイコンをクリック。 別ウィンドウが表示され、キャプチャできる。 スクロールバー常に表示 android fadeScrollbars="false" 一気にトップに戻るときなどに生成したアクティビティを削除する方法 画像ファイルが解放されなくて、メモリリークになったが、 下記のサイト解決できそう。 http //inujirushi123.blog.fc2.com/blog-entry-44.html 遷移するときにインテントフラグをセットすればいいらしい。 前回状態を維持したまま、前の画面に戻る 前回状態で前の画面に戻る場合、 startActivityForResult()でリクエストコードを渡して、判定するやり方がある。 TOP画面に戻るなど、中間の画面を飛ばして遷移する場合は、 この方法で中間のActivityを残さないで遷移できる。 (中間のActivityが残るとメモリがどんどん消費される→メモリリークorz) 参考 AIRIA Android 画面遷移 http //gallop.ddo.jp/blog/airia/2009/06/android-1.html 関連書籍 プログラミングAndroid
https://w.atwiki.jp/nikoban/pages/13.html
android関連 androidソースコードをダウンロードする androidソースコードをビルドする 標準アプリをeclipse上でビルドする