タグ:android ( 43 ) タグの人気記事

Dashboards | Android Developers

というわけで表題どおり、更新されていました。
毎回思うのですが、前回更新分とか残しておいてほしいなあ……(今回から、ちゃんとEvernoteで保存するようにしました)

OSバージョンは、まだ1000人に8人が2.2利用というのが驚きですが、これ以下は死滅しているようですね(ほんとに??)
4.4はまだ13.6%ですが、全体の72%がJelly Bean以上。いいですね。

次にスクリーンサイズですが、比率をみると思ったより多いのがSmall-ldpiで、7%もいます。Normal-mdpiも12%、まだまだエントリーモデルとして利用されているということでしょう。
エントリーモデルといえば、全体を見てもまだNormal-hdpi〜xhdpiが半数を占めています。日本ではほとんどxxhdpiしか出てこない市場になっていますが、そういった点を考えても、国内市場はどんどん需要の条件がガラパゴしてるなあと思いました。


最後にOpenGL対応。GL3.0の対応状況はまだ16.3%程度なので、しばらくOpenGL3.0を使っていくのは難しそうです。自分はまだ使ったことないですが。
[PR]
新製品ラインナップ | 2014夏モデル | 製品 | NTTドコモ

ドコモ、2014年夏モデルとなるソニーの防水 4K 動画撮影対応スマートフォン「Xperia Z2 SO-03F」発表、5月21日発売 | GPad

ドコモ、2014年夏モデルとなるソニーの4.3インチ小型エクスペリアスマートフォン「Xperia A2 SO-04F」発表、6月中旬発売 | GPad

ドコモ、指紋認証や心拍センサーを搭載した防水対応のギャラクシースマートフォン「Galaxy S5 SC-04F」発表、5月15日発売 | GPad

ドコモ、2014年夏モデル画面をギリギリまで大きくした5.4インチ EDGEST スマートフォン「AQUOS ZETA SH-04F」発表、5月23日発売 | GPad

ドコモ、5インチフルセグ対応 Android 4.4 Super ATOK ULTIAS 搭載 2014年夏モデル「ARROWS NX F-05F」発表、5月下旬発売 | GPad

ディズニー・モバイル、6つの物語が楽しめる Disney Market 対応スマートフォン「Disney Mobile on docomo SH-05F」5月下旬発売 | GPad

ドコモ、VoLTE 音声通話対応デジタルノイズキャンセリング搭載ソニータブレット「Xperia Z2 Tablet SO-05F」発表、6月下旬発売 | GPad

ドコモ、2014年夏モデル 7インチ WUXGA 解像度 IGZO 液晶採用の EDGEST 薄型軽量タブレット「AQUOS PAD SH-06F」登場 | GPad

ドコモ、テレビ視聴機能のない端末でテレビが楽しめるテザリング対応 Android 搭載チューナー「TV BOX」発表、7月発売予定 | GPad

ドコモ、原研哉氏デザインのオシャレなシニア向けシンプルスマートフォン「らくらくスマートフォン3 F-06F」発表、8月発売予定 | GPad

というわけで先日ドコモの新端末+新サービス発表会が行われましたが、Docomoからは2K解像度ハンドセットもなく、ごくごく普通の各社フラッグシップモデルが発表されるという、なんとも味気ない結果となりました。
個人的にはGalaxy S5が一足お先に販売開始ということなので、これで夏モデルのシェアにどれだけ影響するかというところが気になります。他はまあ、らくらくスマートフォン3がやたら毒々しい感じでこれはいいのかと思ったら、お偉いデザイナーの方がデザインしていることを知って、なんとも言えない気分です。

個人的には端末より気になったのがdマガジン。

報道発表資料 : 電子雑誌の定額読み放題サービス「dマガジン」を提供 | NTTドコモ

月400円で読み放題という点でもかなりお得感あるんですが、ラインアップもラインナップで「別に毎号読む気はないけど、暇な時に目についたら読むかもしれない」という感じの雑誌がちょいちょいあるのが個人的にポイント高いです。

映画アニメに比べれば専有される時間も少ないし、上にも書いたように、コミック雑誌でもなければ毎号読まないといけないような連載記事も少ないので、この雑誌読み放題というサービスは凄く便利なんじゃないかなあと思います。あとは実際の発売日と配信日にラグがほとんどないのと、参入がどんどん減らないことを祈るばかりですが。

というか、ビューンも昔からこういうサービスだったんですね(昔あった閲覧履歴のアレで名前だけは覚えてました)。
電子書籍なら雑誌・コミックが読み放題のビューン

ただビューンは雑誌まるごと見れるわけではなさそうなのが非常に微妙な感じで、dマガジンも同じような形態になったらやだなあと思っているので、dマガジンは本当の読み放題サービスとして稼働してもらって、雑誌の電子書籍化の波を作ってほしいなあと感じるこのごろです。
[PR]
(※)正式には「UXアンチパターン」ですが、内容からして「UIアンチパターン」の間違いではないかと思います

Googleが公式チャンネルで公開している、Androidアプリに関するUIアンチパターンの解説動画の内容をざっとまとめました。

Android Design in Action: Common UX Issues (Japanese) - YouTube
https://www.youtube.com/watch?v=x_gxZd9kLv4

まとめ自体は、自分に向けての内容でもあるので、少々過剰な表現が加わっています。

More
[PR]
先日なにかの手違いでAndEngineのForkを作っていたんですが、せっかくなのでGradleをつけてMavenリポジトリにも対応させてみました。

yamacraft/AndEngine at addGradle

追加方法
repositories {
maven { url 'https://raw.github.com/yamacraft/AndEngine/addGradle/repository' }
}
dependencies {
compile 'AndEngine:AndEngine-lib:1.0.0'
}


これで後は通常通り使ってもらえれば大丈夫なはずです。
まだキチンとできているのか不明なので、本家にプルリクエストする予定は未定です。
その他のプラグインのGradle+Mavenリポジトリ化は、自分の必要に応じて追加します。

あとGradle対応+Mavenリポジトリ化は別途記事にします。

決め事
バージョンは本家のバージョン+パッチバージョンで表記

注意
Android Studioではassetsリポジトリが標準でないので、作る必要があります。
rootディレクトリ
+build
+libs
+src


この階層にassetsフォルダを作成して、build.gradleのandroid{}内に
sourceSets{
main{
assets.srcDirs = ['assets']
}
}

と入れておきましょう。
これで各種assetsからファイルを読み込む処理ができるようになると思います。
[PR]
昨日公開したADTプロジェクトなんですが、Github上で見たらインデントがとても恥ずかしいものになっていました。
KLabがPlayground OSSを公開したときに、インデントのタブと半角スペースが混在してて散々失笑を買われていたのを思い出して顔面蒼白してしまったので、これを気にちゃんと設定することにしました。
というか、U100の環境が何もしていなかった。

Eclipseの設定

d0252816_17213236.png


「設定」>「エディター」>「テキスト・エディター」
ここで「タブにスペースを挿入」にチェックを入れて、「表示されるタブ幅」を4に。
「Java以外」のファイルが対応されます。
「空白文字の表示」にチェックを入れておけば、空白がタブによるものか半角スペースによるものかを可視化できるようになります。

d0252816_17215046.png


「設定」>「Java」>「コードスタイル」>「フォーマッター」
編集ボタンを押します

d0252816_1722498.png


ここで「タブポリシー」をスペースのみに設定し、「インデントサイズ」と「タブサイズ」を設定すれば完了です。

ついでにAny Editプラグインを追加します。

d0252816_17223382.png

URI:http://andrei.gmxhome.de/eclipse/

非常に見えづらいですが、いま使っているEclipseのバージョンに合わせたものを選択してインストールしましょう。

d0252816_17225072.png


d0252816_17225883.png


「設定」>「エディター」>「AnyEdit ツール」

ここの自動変換のところで、「タブ<->スペースの変換」をチェックして「タブをスペースに」を選択すると、ファイルを保存するたびにタブをスペースに変換してくれます。便利。

Android Studioの設定

基本的にはタブを一律半角スペース4文字分で入力してくれるため、特に気にすることはありません。


「File」>「Other Settings」>「Default Settings」
「File」>「Settings」

いちおう変えたいorチェックしたい場合は、これで設定画面がでます。
上はデフォルト設定、下はいま使っているプロジェクトでの設定です。

d0252816_17231541.png


とりあえずこれで恥ずかしいインデント表示にならなくなると思います。

ちなみにインデントを半角スペース4文字分にしているのは、Android自体のコードガイドラインを元にしています。
これでさらに恥ずかしくない。

Code Style Guidelines for Contributors | Android Developers

クックパッドのコードガイドラインのコードガイドラインも分かりやすくてオススメです。

styleguide/java.ja.md at master · cookpad/styleguide
[PR]
最近はandroidライブラリ(やテスト、果てはビルドそのもの)を、Gradleを使っての管理するのが一般的になってきたので、Gradle自体の操作を覚えつつ、現在ADTで作った各プロジェクトをGradleでもビルドできるようにしようと思いました。

最終的な目標まで行けてないので、とりあえず現状のメモを残していくことにします。

動作環境
Android SDK Tools 22.6.2
Android SDK Platform-tools 19.0.1
Android SDK Build-tools 19.0.3vi
JDK 1.7

手始めに、まず新規で作ったADTプロジェクトにGradleを入れて、ビルドまでやってみることにします。
いまのADTプロジェクトは、勝手にAppCompat(アクションバー)のライブラリプロジェクトを生成してくれて(こういうテストのときには)便利(だけど実際開発するときはめんどくさい)ですね。

というわけで、「AdtForGradle」というプロジェクトを新規作成して使います。

1. eclipse上でgradleファイルを作成する。
「エクスポート」>「Android」>「Generate Gradle build files」

d0252816_2159485.png


「次へ」でGradleファイルを生成したいプロジェクトの選択画面になるので、「AdtForGradle」にチェックを入れて「次へ」。

d0252816_2203295.png


関連するライブラリにもGradleファイルを作りますか?みたいな確認画面がでてくるので「完了」を押しましょう。

d0252816_2225298.png


d0252816_2234056.png


これで選択したプロジェクトとappcompat_v7(利用しているライブラリプロジェクト)にGradleファイルが出来上がります。

2. Gradleワラッパー一式をコピー
Android SDKが置いてあるディレクトリの「/tools/templates/gradle/wrapper/」以下にある
- gradle/
- gradlew
- gradlew.bat
の3つを、gradle.buildが置いてある階層に、コピーしてきます。
batの方はWin用なので不要なのですが、どの環境でも実行できるように、いちおう置いておきましょう。

3. パス設定
まずコマンドライン上でビルドできるように、JAVA_HOME、ANDROID_HOMEの環境変数を設定します。
JAVA_OPTSでファイルエンコーディング指定もいれておいたほうがいいかも。

# .bash_profile
export JAVA_HOME="/usr/lib/jvm/java-7-oracle"
export ANDROID_HOME="/home/yamacaft/adt-bundle_linux-x86/sdk”
export JAVA_OPTS="-Dgroovy.source.encoding=UTF-8 -Dfile.encoding=UTF-8"


4. コマンドライン上で実行
これであとはgradle.buildの置いてあるディレクトリに移動して

$ ./gradlew clean buildinstallDebug


といれると、プロジェクトがクリーンビルドされ、作成されたデバッグ用apkが端末にインストールされます。
プロジェクトにも、作成されたビルドファイル一式ができています。

d0252816_2264771.png


デフォルトの設定で「リリース用」なるapkもありますが、今回はビルドの話だけなので、無視します(署名がどうなってるかもわからないので)。

5. eclipse上から実行したい場合
いつも使う「実行」ボタンの右にある「外部ツールの実行」のプルダウン部分をクリック>「外部ツールの構成」を選択

d0252816_2291562.png


d0252816_2292470.png

※2枚目に出てるエラーは、ロケーションのところを誤字してミスってるだけなので無視してください。

左カラムにある新規作成アイコンをクリックして、キャプチャの通りに入力します。

-メイン-
名前:(お好きな様に)
ロケーション:${project_loc}/gradlew
作業ディレクトリー:${project_loc}
引数:--daemon ${string_prompt}

-環境-
(新規ボタンを押して以下の2つを追加)

変数:ANDROID_HOME
 値:(シェルで設定したANDROID_HOMEの値)

変数:JAVA_OPTS
 値:(シェルで設定したJAVA_OPTSの値)


これで保存した後に、ビルドしたいプロジェクトを選択したところで、「外部ツールの実行」を押すとビルドが開始されます。

d0252816_22104571.png


途中でこんな画面が出てきますが「clean build buildinstallDebug」と入力すれば、先ほどのコマンドライン上で実行したときと同じ結果になります。

とりあえずこれで、Gradleからでもビルドが出来るようになりました。

さらに自分は諸事情で、このまま「ADTで開発を進めつつ、Gradleでビルド」ということがしたいので、1で生成したGradleファイルのままだと、mavenやGitHubからライブラリが引っ張ってこれなかったりするので、中身を手直しする必要があります。

というわけでここからはまだ検証中なので解説できませんが、とりあえず現時点の内容(上記内容+ButterKnifeの追加)をGithubに公開しました。

yamacraft/Adt_project_for_Gradle

次はJenkinsでビルドするところに入るのか、テストを入れるのか、果ては開発方面に進むかのどれかで考えています。最終的には全部やる予定ではいます。

とりあえずここまで。
[PR]
Using Hardware Devices | Android Developers

LinuxでAndroidの実機確認をするために、/etc/udev/rules.d/でUSBの認識用ファイルを入れる必要があったんですが、いつの間にか公式で詳しく記載+ベンダーIDが列挙されてましたね。

なので、記載されている全IDをぶちこんだrulesファイルをGithubに公開することにしました。

yamacraft/ubuntu_android_device_rules

Ubuntuであれば、そのまま該当のパスにコピーすれば使えるかなと。
最近は公式のDeveloperが静かにいろいろ便利な情報が記載されているようなので、どこかで一度落ち着いて全チェックしてみようかなと思います。

あと昨日、休みをとった勢いで資料作ってmixiのLTに参加してみました。
これは後日更新予定です。いろいろ勉強できました。
[PR]
※この記事は別にBaiduやSimejiの行っていた内容を擁護するものではありません。これをきっかけに、とあるサービスに苦言を呈したいがために書いています

Baidu製のIME、並びにBaidu側に開発が移ったandroidアプリ「Simeji」において、端末固有IDと入力内容を紐付けたデータが、ユーザーの意図に関係なく送信されていることが発覚し、話題になっています。

【ニュース】日本語入力ソフト「Baidu IME」「Simeji」の入力内容無断送信報道について、バイドゥが見解を発表 » アンドロイド用アプリが見つかる!スマホ情報ならオクトバ

このニュース自体は、すでに各所で広範囲に話が進んでいますが、私が気になったのは、この調査報告を行った企業が、ネットエージェントだというところでした。

NetAgent Official Blog : 入力情報を送信するIME

ネットエージェントといえば、androidアプリを自動で解析し、悪意のある機能を持っているかどうかを判定して公開している、secroidというサービスを運営しています。

Androidアプリの潜在リスクチェックはsecroid(セキュロイド)

このサイトは今も運用中のようで、実際に上記のネットエージェント公式ブログでは、合わせてSimejiのSecroid判定のページをリンクしています。

d0252816_0161728.png

「リスク:HIGH」だそうです。これだけ見れば、ちゃんと判定できているように思えます。

では、同サイトの現在の「人気:無料」ランキングを自動解析した結果と、注意リストの一覧を見てみましょう。
d0252816_0155051.png

d0252816_0144359.png


何が言いたいか、わかっていただけると思います。大してリスク判定ができていません。
人気アプリの半分近くはsimejiと同じリスクレベルが表示されているし、注意リストにパズドラ含め、有名アプリがいくつか入っています。
「simejiだって、有名アプリ」でしたが、こちらにあるのはsimeji以上の極悪機能が今もなお、バレずに隠されているのでしょうか。
(どうも、チート行為防止のために入れていると思われるroot端末チェックが原因のように見えます)

ここから例えば注意リストに上がったアプリを、今回のsimejiのように人の手で再調査を行い「~に問題があった(なかった)」という回答が出されるならよいですが、実情はこの状態で放置され続けています。

こうした形の公開の仕方では、オオカミ少年のように、いずれユーザーが本当のリスクある情報に対し注意を示さなくなるとしか思えません。

とにもかくも私が言いたいことは、せめて今回simejiがこうした危険性を持っていたことを見つけられたのだから、一時的にリスクレベルを最大のDANGERにするといった行動をとってもらうか、そういった「本当にリスクあるアプリをキチンと抽出する気が今後もないのであれば、1日でも早くクローズして欲しい」ということです。

セキュリティに対してもっとも危険なのは、「危険であるはずの要因に慣れてしまう」ことにあるかと思います。
ネットエージェントのより良いセキュリティ啓蒙活動に、期待しています。
[PR]
Android Studio v0.4.0が公開されました。
http://tools.android.com/download/studio/canary/0-4-0

Android Studioがv0.4.0にバージョンアップしたことで、Android Studio上から直接、ADT(Eclipse)で作成したプロジェクトをインポートできるようになったようです。
以前はEclipse側で、Gradleビルド形式でインポートしたファイルを取り込む必要がありました。

なので早速試してみました。ちなみにMacでの話ですが、他も同様だと思います。
え、U100?察してください。

今回はためしに、何も考えずに新規プロジェクトの「Hello world」しか表示されないADTプロジェクトをそのままインポートしてみました。
d0252816_23194389.png

インポート方法は、そのままAndoid Studioの「File」から「import project」を選ぶだけです。
d0252816_23195611.png
d0252816_23201976.png


なんか出てきた……英語……。コピーできない仕組みは本当にやめてほしい……。

This wizard will import Eclipse Android projects. Note that the import will create a full copy of the project; it does not touch the original Eclipse Project. At the end of the import, it will open a summary which shows how the old Eclipse directory structure was mapped to the new Gradle directory structure, and any other issues noticed during the import.

意訳すると
「インポートするけど、元のプロジェクトはいじらないから安心しとき!あとGradleのディレクトリ構造に勝手に変えとくわ!なんか問題あったら連絡するで!」
だそうです。

了解したので「Next」を

d0252816_23213275.png

なんか(略)

The ADT project importer can identify some .jar files and even whole source copies of libraries, and replace them with Gradle dependencies. However, it cannot figure out which exact version of the library to use, so it will use the latest. If your project needs to be adjusted to compile with the latest library, you can either import the project again and desable the following options, or better yet, update your project.

意訳すると
「なんかjarとかライブラリがあっても、こっちでいい感じにGradle構造に合わせとくわ!でも正確なバージョンわからんき、最新のバージョン使うで!なんか問題があったらあとで兄ちゃんが編集しとき!」
だそうです。

下の選択項目は、
「jarはそれでよし」「libraryはそれでよし」「Gradleはキャメルケースで書くのが基本なので、合わせて名前を変えてよし」
という内容だそうです。
問題ないのでそのまま「Next」

d0252816_23222768.png

(略)

Your project depends on a library distributed via the Android Support Repository, but that repository is not installed in your SDK installation. Please open the Android SDK manager and install the "Extras > Android Support Repository".(Note:this is not the same as the the Android Support Library Which also listed there.)

意訳すると
「あかん!兄ちゃんAndroid Support Repositoryがインストールされとらへんやん!入れて!」
だそうです。入れます。「Android SDK Manager」押してSDKマネージャー立ち上げて入れます。
入れてFinish押します。

d0252816_23233473.png

無事取り込みが完了しました。きれいなGradle構造ですね(Gradle知らないエンジニア並の感想)

ビルドも実行も問題なく行えました。
まあ、何が言いたいかというと、長々とした英文を載せるならコピーできるようにしてほしいということでした。

android studio自体の使い方は、下のリンクとかを参照するといいと思います。

Ubuntu で Android Studio のダウンロードとインストールとテスト実行
[PR]
Android公式のソースチェック「Lint」の話です。
Lint自体はAndroid toolsに含まれているため、SDKを入れていれば何も気にせず使えます。
あ、でもPATHはちゃんと通しておいてくださいね。

(androidSDKのディレクトリ)/tools


eclipseの場合は、既にADTが連携してくれているので知らず知らずに利用しているかと思います。

d0252816_194266.png


アイコンとか、エディタの行頭に出て来る警告アイコンが、それです(AndEngineのプロジェクトより)。
メニューバーのSDKマネージャの横にあるチェックボックスボタンをクリックすることでも、起動させることができます。

d0252816_1101996.png


右の三角ボタンを押すことで、Lintをかけるプロジェクトを選択することもできます。

d0252816_110467.png


Lintをかけると、「Lint警告」Viewに一覧が表示されます。あとエディタでも黄色い線だったり、赤い線が該当部分にうにょうにょ書かれてたりします。多分すでに存在だけは知ってる人が大多数だと思いますが、これがLintです。

ちなみにコマンドラインからでも実行することができます。

lint (チェックしたいプロジェクトのルートフォルダ)


上記のコマンドだけだと、コンソール上に結果が全て表示されてしまいます。

lint --html ./repo.html (チェックしたいプロジェクトのルートフォルダ)


とすれば、結果が./repo.htmlに出力されます。

設定画面ですが、先ほどの「Lint警告」のアイコンの右端がオプションボタンなので、ここをクリックすればLintの設定ができるようになります。

d0252816_1115394.png


プロジェクト単位でも設定を変えることが可能です。

で、ここまでやっておいてなんですが、特に何かしていないかぎり、デフォルトで大半のチェック内容を警告で常時エディタに表示してくれているので、常に黄色い波線を消しながら作業を進めている人には、いまさら詳しく調べることはあんまりない気がしてきました。はい、私です。

当初はこれをjenkinsで定期チェックしていく予定でしたが、現在の開発時点で大体しらみつぶせているので、他の品質管理の方に目を向けたほうがよさそうですね。


■参考リンク
Android Tips #7 Android Lint を活用する | Developers.IO

Android Tips #8 Android Lint の設定を理解する (1) | Developers.IO

Android Tips #9 Android Lint の設定を理解する (2) | Developers.IO

Android Lint の利用方法を記載 | Bescottee
[PR]