Lionaroid技術ブログ

Androidやドローンに関する技術的な記事やiRacingなどのシミュレータに関する記事

Arduinoリファレンスまとめ

久しぶりにArduinoを触ったのでリファレンス等をまとめておく

開発環境、インストールまわり

リファレンス

FAQ

いつの間にか文字列周りが便利になってた。

Mac OS X 10.6でAndroidビルド時に発生するdb46エラーの対処方法

Mac OS X 10.6.5でAndroidのソースをビルドしていると、db46エラーに遭遇したので対処法を記しておく。

source.android.comのGet Android Source Codeのページに記載されているMacのビルド方法で、下記の記述がある。

3. Get the following packages from port:
$ POSIXLY_CORRECT=1 sudo port install gmake libsdl git-core gnupg

上記を実行すると、portのインストール途中で以下のエラーが発生した。どうやら、Mac向けJavaのネイティブフレームワークヘッダが足りないようだ。

Error: db46 requires the Java for Mac OS X development headers.
Error: Download the Java Developer Package from: <https://connect.apple.com/cgi-bin/WebObjects/MemberSite.woa/wa/getSoftware?bundleID=20719>
Error: Target org.macports.configure returned: missing Java headers
Error: Failed to install db46
Log for db46 is at: /opt/local/var/macports/logs/_opt_local_var_macports_sources_rsync.macports.org_release_ports_databases_db46/main.log
Error: The following dependencies were not installed: xorg-libXext xorg-libX11 xorg-libxcb python27 db46 gdbm openssl zlib readline sqlite3 xorg-libpthread-stubs xorg-xcb-proto libxml2 xorg-util-macros xorg-xcmiscproto xorg-xextproto xorg-xf86bigfontproto xorg-xtrans xorg-libXrandr xorg-randrproto xrender xorg-renderproto
Error: Status 1 encountered during processing.
To report a bug, see <http://guide.macports.org/#project.tickets>

ログのメッセージの通り、Java for Mac OS X 10.6 Update 3 Developer Package(139.4MB) をダウンロードして、手動でインストールを行う。ダウンロードにはAppleIDが必要な点に注意する。

その後、改めて「3.」のコマンドを実行し直せば、portのインストールが成功する。

Androidドキュメントの翻訳

去年の夏ごろから開始したSDKに付属する公式Androidドキュメントの翻訳ですが、Gingerbread対応の翻訳作業を開始しました。

翻訳の一連の作業にご協力頂ける方は、是非、下記のサイトからご参加&ご応募下さい。http://groups.google.com/group/android-docs-jp

翻訳の参加には、SourceForge.jpのアカウントが必要です。SourceForge.netのアカウントは使用できませんので、ご注意下さい。

Androiderが押さえておきたいブログ・サイトまとめ

個人的に、"Androider(開発者)が押さえておくべき"と感じたブログ・サイトのまとめです。*1
※2014/5/13にリンクの保守を行いました。

公式

開発全般

*1:あくまでも主観によるものです

続きを読む

Webアプリのデバッグ

原文(Debugging Web Apps - android developer's)はこちら

Android向けのWebアプリケーションを開発しているなら、logcatにメッセージを出力するコンソールJavaScript APIを使用して、JavaScriptデバッグが可能です。FirebugやWeb Inspectorを用いたWebページのデバッグに慣れているなら、おそらく(console.log()のような)コンソールを使う方が分かりやすいでしょう。
Android WebKitフレームワークは、ほぼ同じAPIをサポートしており、AndroidのブラウザやWebView内のWebページのデバッグ時に、ログを取得することが可能になります。

概要

  • JavaScriptのコンソールメソッドを利用してWebアプリのデバッグができます
  • カスタムWebViewをデバッグしているなら、デバッグメッセージをハンドルするコールバックメソッドを実装する必要があります

このセクションの内容

  • AndroidのブラウザでコンソールAPIを使う
  • WebViewでコンソールAPIを使う
続きを読む

Webアプリのベストプラクティス

原文(Best Practices for Web Apps - android developer's)はこちら

モバイル端末向けのWebページとWebアプリの開発は、典型的なデスクトップWebブラウザ向けの開発と比べて、異なるチャレンジをしなければなりません。
開発を始めるにあたり、Androidやその他のモバイル端末向けのWebアプリケーションを最も効果的に適用するために、従うべきプラクティスのリストを下記に示します。

1. Webサイトのモバイル専用バージョンにモバイル端末をリダイレクトする

サーバサイドのリダイレクトを利用した、Webサイトのモバイルバージョンへリクエストをリダイレクトする方法がいくつかあります。大抵はWebブラウザから提供されたユーザーエージェントを"検知"することでこれを行います。
サイトがモバイルバージョンを提供するかどうかを決めるには、ユーザーエージェント中に"mobile"文字列があるかどうかを見るだけです("mobile"は様々なモバイル端末に適していることを示します)。
必要であれば、ユーザーエージェント文字列中の特定のOSを識別することも可能です("Android 2.1"のように)。

2. モバイル端末に適切なマークアップDOCTYPEを使う

モバイルWebサイトで最も共通的に使われているマークアップ言語は、XHTMLベーシックです。このスタンダードな言語はモバイル端末上で、Webサイトをうまく動作させる具体的なマークアップとして保証されています。
例えば、先のマークアップ言語はモバイル端末上でパフォーマンスのでない、HTMLフレームやネストされたテーブルは許可されていません。また、DOCTYPEと共に、必ずドキュメントの適切な文字エンコーディングを宣言して下さい(UTF-8のように)。
例:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML Basic 1.1//EN"
    "http://www.w3.org/TR/xhtml-basic/xhtml-basic11.dtd">

また、必ず、宣言されたDOCTYPEに対してWebページのマークアップが有効になるようにして下さい。http://validator.w3.orgで提供されているようなバリデータ(検証機構)を利用しましょう。

3. Webページのリサイズに適したビューポートメタデータを使う

ドキュメントの中で、Webページを描画するためのブラウザのビューポートをどのように扱うかを記した、具体的なメタデータを提供すべきです。
例えば、ビューポートメタデータでは、初期Webページのスケールとターゲットの画面解像度に合わせた、ブラウザのビューポートの高さや幅を指定できます。
例:

<meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=no">

Androidの端末向けビューポートメタデータの使用方法の詳しい情報は、Targeting Screens from Web Appsを参照して下さい。

4. 複数のファイルリクエストを避ける

モバイル端末は一般的にデスクトップコンピュータに比べて接続速度がかなり遅いため、Webページは可能な限り早く読み込みされるように作らなければなりません。スピードアップの一つの方法として、スタイルシートや内のスクリプトファイルのような、外部ファイルの読み込みを避けることが挙げられます。
代わりに、内で直接CSSJavaScriptを記述します(もしくは、ページが完全に読み込まれるまで必要の無いスクリプトをの終わりに記述します)。
あるいは、Minifyのようなツールを利用した圧縮によって、ファイルのサイズやスピードを最適化すべきです。

5. 縦方向のリニアレイアウト(LinearLayout)を使う

Webページをナビゲートするにあたり、ユーザに左右のスクロールをさせることを避けなければなりません。上下にスクロールする方がユーザにとっても簡単ですし、Webページもシンプルにできます。

素晴らしいモバイルWebアプリを作成するさらなるガイドについては、W3CMobile Web Best Practicesを参照して下さい。(モバイルとデスクトップの)Webサイトのスピードアップに関するその他のガイダンスについては、Yahooガイドの Exceptional PerformanceGoogleLet's make the web faster内のスピードに関するチュートリアルを御覧下さい。

ADT 9.0.0 preview 2が公開されています


Android Tools Project Siteで、ADT 9.0.0 プレビュー2がダウンロードできる状態になっています。バージョンが9系ということは、Gingerbread対応のADTですね。
プレビュー2は、プレビュー1に対してユーザーから上がってきたバグのいくつかを修正したバージョンです。

主な修正点は下記の通り:

尚、過去にADTのバグで、プロジェクトのファイル一式が消えてしまう(?)バグがあったようですので、ADTの更新の際はできるだけバックアップしてから、新ADTの導入を行うことをおすすめします。