My Photo
無料ブログはココログ

« November 2010 | Main | March 2011 »

書籍のバグを見つけました

Android 2.1 プログラミングバイブル
http://www.socym.co.jp/book/4883377075.html

のサンプルコードにバグがありました。
正誤表に乗ってなかったのでちょっと書いてみました

第5刷の326ページ
サンプルコード:
android2_1-sample\ch7\HomeEx\src\net\npaka\homeex\HomeEx.java
119行目

×
float ratio=(float)iconWidth/iconHeight;


float ratio=(float)iconWidth/(float)iconHeight;

※ iconWidth < iconHeight の場合intキャストされて0になる。

Androidアプリにおけるassetsフォルダとres/rawの使い分け

アプリで画像やXMLを利用するには res/drawable や res/value res/xml に配置してリソースIDを使用するよう決められているがそれ以外のファイルはassetsフォルダとres/raw どちらに配置するか迷った。
が、このページに規約があった。
※右下の「Access to Original Files」

要はこういうこと

【assetsフォルダ】
アプリから保存可能!!
・ディレクトリ構造可能(フォルダ作成可能)
・リソースIDが振られないので引数に使用するAPIには使用できない
・URLを引数とするAPIに「file:///android_asset/」として使える

【res/rawフォルダ】
・アプリからの保存不可
・ディレクトリ構造不可
・res/raw-en res/raw-hdpiのように解像度・言語別に端末自動判別してくれる機能が使える
・リソースIDがコンパイル時に振られるので引数に使うAPIに使用できる。
 ※特に音楽やビデオファイルの場合はAPIがリソースIDを求められることが多いし、公式でここ指定されている
・URLとしては取れないので引数をURLとするには一旦assetやデータフォルダに保存する必要がある  ←俺追加
↑ごめんちゃい。ContentProviderでできました。

ちなみにアプリ固有なバイナリファイルを読み込む場合はここに「you might consider saving some resources in the assets/ directory (instead of res/raw/). 」
※俺訳:リソース(リソースID関連のソース・動作メモリ)を節約できるのでres/rawよりassetsを検討しる

とあったのでメディアファイルやXMLのような特定のファイル形式でなく、解像度・言語別判別を使わないのならばassetsフォルダのほうがいいみたい


【おまけ】
フォントファイル(ttf)をアプリから使用する時のようにリソースIDが全く使えず、AssetManagerを優先するAPI
もあるので注意

Apache2.0ライセンスのライブラリの組み込んだAndroidアプリ

結構、実際の例がないなあ。。。
これくらいか。。。

これ見ても意味わからん。
GPLはソースコード配布とリンク(ビルド)したものを配布したらソース晒せ
Apache2.0はソースコード配布とリンク(ビルド)したものを配布したら一緒にライセンステキスト同梱しろ
でもダウンロードしたユーザが見れなくても「同梱しましたキリッ」でいいのかな。。。

【12/2追記】
いまのところこれが有力だが人の翻訳を信用するのもなんだなあ。。。

元々NOTICEに相当するテキストファイルが存在する場合には(あるとしたら、多分NOTICEなどのわかりやすいファイル名になっていると思います)、そのファイルに記載されている帰属告知を、公開するソース、NOTICEファイルも公開するならそのファイル、あるいはその他の文書、あるいはバージョン情報ダイアログなどのうち少なくとも1箇所に表示する必要があります。

« November 2010 | Main | March 2011 »

Categories

  • Android Dev
  • グルメ・クッキング
  • ゲーム
  • プログラマ
  • 携帯・デジカメ
  • 日記・コラム・つぶやき
December 2021
Sun Mon Tue Wed Thu Fri Sat
      1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31