ラベル Android の投稿を表示しています。 すべての投稿を表示
ラベル Android の投稿を表示しています。 すべての投稿を表示

2013年11月10日日曜日

AOSPのmirror用manifesttが足りない

KitKatのソースが公開されたので、毎日syncしているAOSPのmirrorからsyncしてみたが、何か足りないっぽい。
fatal: '/home/aosp/AOSP/platform/external/lzma' does not appear to be a git repository
fatal: The remote end hung up unexpectedly
...
error: Exited sync due to fetch errors
この問題は、Android Buildingのgroupでも指摘されていた。

  aosp mirror/manifest missing some git projects form android-4.4_r1 

ワークツリーに展開する際に参照する  https://android.googlesource.com/platform/manifest.git に含まれているprojectの幾つかが、ミラーリングに使用する  https://android.googlesource.com/mirror/manifest.git に含まれていないのが原因らしい。
KitKat公開直後は多くのprojectが不足していたようだが、指摘を受けて大半は改善されたようだ。しかし11月10日の時点でも、まだlzmaとsil-fontsがmirrorに含まれていない。

 Mirror/manifest project

この件について、Repo and Gerrit Discussionで質問があり、スレ違いの指摘と共に解決策が提示されていた。
  aosp mirror/manifest missing some git projects form android-4.4_r1

ミラー用の .repo ディレクトリの中に、このようなlocal manifestを追加したら、デフォルトのmanifestに抜けているプロジェクトもミラーされるようになった。
$ cat .repo/local_manifests/missing.xml
<?xml version="1.0" encoding="UTF-8"?>
<manifest>
  <project name="platform/external/lzma" />
  <project name="platform/external/sil-fonts" />
</manifest>
 めでたし、めでたし。

2013年6月29日土曜日

Ubuntu 10.04 LTS から 12.04 LTS へ移行してトラぶった話

 Ubuntu 10.04 LTS DesktopがEnd of Lifeになったので、Androidのビルド用に使っているPCのOSを12.04 LTSへアップデートしました。で、いろいろトラぶりました。

アップデートマネージャでアップデートしたらブートマネージャが壊れてHDDから起動しなくなった

OS更新でありがちなトラブルですが、いきなりブートしないのには焦りました。インストール媒体でブートしてgrubを更新して解決しました。

Androidのビルドが出来なくなった

これは前から分かっていた事なので、http://source.android.com/source/initializing.html に従ってパッケージを入れる等してみましたが、これでは足りませんでした。gcc-4.4を追加でインストールして、gcc-4.6ではなくgcc-4.4が優先的に呼ばれるようにして解決しました。ターゲットによっては、問題無いのかも知れません。

Windowsサーバの共有をmount.cifsでマウントできなくなった

共有のアクセス権設定が妙に凝っていて、上位のフォルダに対して読み込みアクセス権が無く、一部の下位のフォルダだけが読めるようになっている場合に、mount.cifsでマウントできません。同じフォルダが Ubuntu 10.04 LTSではマウントできていました。
SambaのBugzillaには登録されていますが、未だ解決のめどが立っていません。
  https://bugzilla.samba.org/show_bug.cgi?id=8950
 この問題にはとても困っていますが、もともとcygwinでやっていてUbuntuに引越しした作業に関する要件なので、手順の一部をcygwinに戻して回避しようと思っています。

 Unityがとっても使いにくいのですが、よく使うTerminal,Emacs等をデスクトップに置いて日常的には不自由は無くなりました。

2013年1月12日土曜日

IDEOS U8800でJelly Bean

気が向いてぐぐってみたら、IDOES U8800でJelly Beanが動いている動画を見かけたので、早速入れてみました。

dzoさんのAurora ICSがインストールされた状態で上書きしても、エラーダイアログ一つも出ずにさくっと起動しました。

Android versionは4.1.2。もっさり感は無く、ICSと同様にさくさく動きます。
しかし、
  • カメラはプレビューさえ動かず、LEDフラッシュ点いたまま
  • Languageは中文とEnglishのみ
てな感じで常用に耐えそうに無かったので、数分でバイバイ。CWM recoveryを使ってICSに戻しました。

2012年11月16日金曜日

sk17iの修理が完了

 修理に出していたXperia mini proが、約一ヶ月ぶりの月曜日に戻ってきました。この手の製品は良品交換となるケースが多いのですが、私のXperiaは同じ品物が修理されて戻ってきました。
  無反応だったタッチスクリーンは元通りに反応するようになりました。修理に出したときと同じICSで動いていましたが、その日のうちにGingerbreadを経由してrootedなICSに書き換え、CWM recoveryで修理前の状態に戻しました。Xperiaは自由自在にバージョン入れ替えが出来るので、Dev Phone程ではないものの、他社端末に無い安心感があります。
 リカバリーの済んだsk17iは、以前と同じようにジーンズの前ポケットに入れて持ち歩いています。

2012年9月29日土曜日

sk17iのICSをアップデート

Xperia mini proのICSにマイナーアップデート(4.1.B.0.587)が来てたので入れてみた。

最初に何も準備しないまま妻端末に入れたら、中華フォントに戻った上にroot取れずあせる。ユーザーデータを温存したまま一旦Gingerbreadに戻し、然るべき準備(/data/local.prop)をして再トライしたら、一応root取りつつアップデートもできた。無理やりICS→ICS→GB→ICSとやったら、com.android.phoneをはじめ幾つかのpackageがdb構造の不整合を起こして落ちまくり。せっかくrootを取ったので、壊したdbを削除して回って一応解決。

同じ轍は踏むまいと、自分の端末は然るべき準備をしてからPC companionで普通にアップデートしたら、ノートラブルでアップデート完了。

2012年9月9日日曜日

sk17i待ち受け時間改善計画

 sk17i(Xperia Mini Pro)の待ち受け時間は、IDEOS U8800と比べて悪くは無いのですが、何もしていない時間のバッテリー消費が多いような気がしていました。仕事で使っているガラスマでは消費ペースが1%/h未満になるケースがあるのに、sk17iではそれより少し多めです。原因を探るために、dumpstateログを比較してみました。

dumpstateは、Androidの動作状態を網羅的に知りたい場合に真っ先に取得するログです。Android SDKがインストールされた状態(adbが使える状態)のPCを用意して、
adb shell dumpstate -v threadtime > dumpstate-20120908.txt
 のようにして取得しています。
見てのとおり、android端末上にインストールされているdumpstateコマンドをshell経由で実行して、PC上のファイルにリダイレクトしています。

 待ち受け時間は、消費電力を知る指標のひとつです。何も操作していない静止状態で、電池切れまでに何時間かかるか等で示します。 これ以外の電池持ちを示す指標として、動画再生時間やテザリングの連続使用時間など、実使用状態での連続使用時間があります。今回対象としたのは、無操作 状態の待ち受け時間です。


 待ち受け時間が短くなる原因としては、
 ・partial wakelockがかかりっぱなしで、画面が消えていても端末がsleepしていない
 ・アプリが行う同期などの通信により、定期的な端末が動作している
などが考えられます。

 sk17iのdumpstateを見てみると、PowerManager経由でアプリが有効化するwakelockは存在していませんでした。wakelockが残っていると消費は数%/hに達しますが、そこまでひどい電池消費ではないので、これは予想された結果です。
 他に目立った消費原因はないかと探してみると、sync historyが気になりました。(Gmailのidは書き換えてあります)
Recent Sync History
  #1  : 2012-09-08 11:05:24   SERVER    0.2s            example@gmail.com/jp.mixi.authenticator.MixiAccountType  jp.mixi.android.provider.mixiapplicationuserrequestprovider
  #2  : 2012-09-08 11:05:24   SERVER    0.2s            example@gmail.com/jp.mixi.authenticator.MixiAccountType  jp.mixi.android.provider.mixifriendlinkrequestprovider
  #3  : 2012-09-08 11:05:22   SERVER    1.5s            example@gmail.com/jp.mixi.authenticator.MixiAccountType  jp.mixi.android.provider.miximessageprovider
  #4  : 2012-09-08 11:05:17   SERVER    5.1s            example@gmail.com/jp.mixi.authenticator.MixiAccountType  jp.mixi.android.provider.feedbacknotificationprovider
  #5  : 2012-09-08 11:04:55    LOCAL    2.0s            example@gmail.com/com.google                             gmail-ls
  #6  : 2012-09-08 11:04:28   SERVER    1.0s        26  example@gmail.com/com.google                             gmail-ls
  #7  : 2012-09-08 11:04:26   SERVER    2.5s         2  example@gmail.com/com.google                             gmail-ls
  #8  : 2012-09-08 10:51:51 PERIODIC    0.4s     13:25  example@gmail.com/jp.mixi.authenticator.MixiAccountType  jp.mixi.android.provider.feedbacknotificationprovider
  #9  : 2012-09-08 10:42:14   SERVER   13.8s     22:11  example@gmail.com/com.google                             gmail-ls
  #10 : 2012-09-08 09:51:51 PERIODIC    0.5s  01:00:00  example@gmail.com/jp.mixi.authenticator.MixiAccountType  jp.mixi.android.provider.feedbacknotificationprovider

 Gmailに負けない頻度で、mixiの同期が行われています。比較のために、同じgoogle idを設定したガラスマでdumpstateを取ったら、sync historyはこうなっていました。

Recent Sync History
  #1  : 2012-09-08 11:04:35   SERVER    2.1s            example@gmail.com/com.google  gmail-ls
  #2  : 2012-09-08 10:42:21   SERVER    2.1s     22:14  example@gmail.com/com.google  gmail-ls
  #3  : 2012-09-08 10:22:36   SERVER    1.4s            example@gmail.com/com.google  com.android.calendar
  #4  : 2012-09-08 10:22:35 PERIODIC    1.0s            example@gmail.com/com.google  subscribedfeeds
  #5  : 2012-09-08 10:22:33 PERIODIC    2.0s            example@gmail.com/com.google  com.android.contacts
  #6  : 2012-09-08 10:22:28 PERIODIC    9.5s     19:52  example@gmail.com/com.google  gmail-ls
  #7  : 2012-09-08 10:22:28 PERIODIC    4.9s         8  example@gmail.com/com.google  com.android.calendar
  #8  : 2012-09-08 02:50:46    LOCAL    0.1s  07:31:42  example@gmail.com/com.google  com.android.calendar
  #9  : 2012-09-08 02:49:52   SERVER    1.3s        54  example@gmail.com/com.google  com.android.calendar
  #10 : 2012-09-08 02:49:46    LOCAL    5.7s         5  example@gmail.com/com.google  com.android.calendar
確かにmixiはインストールしてありますが、使用頻度はかなり低く、1時間毎に同期を行う必要はありません。同期の内容を見直し、同期間隔を12時間または24時間毎に変更してみました。
 これで、0.5%/hを切るようになれば、ほぼ目標達成です。今日はまだ変更直後なので、まだ効果はわかりません。数日使えば、判断できると思います。

2012年7月21日土曜日

Xperia mini proへ移行

普段使いのAndroid端末を、IDEOS X5(U8800H)からXperia mini pro(sk17i)に買い換えました。解像度がHVGAな点は残念ですが、小さくてスライドキーボード付きという点がとても気に入っています。カメラは普通のコンデジ並み。小さいので、ジーンズの前ポケットにも無理なく入ります。普通のAndroid端末では、とても無理。
 rootは取れるし、公式のICSは安定して動くし、CWMでbackup/restoreはできるし、かなり自由が利く端末です。使い始めて1週間経ちますが、IDEOS X5と違って、放置リセットするような事もありません。

2012年5月5日土曜日

Xperia mini proのビルトインアイコンがバグっている件

sk17iのアイコン一覧  
エミュレータのアイコン一覧

 スケジュールした曜日・時刻にマナーモードのOn/Offを切り替えるアプリを作ったのですが、なぜかXperia mini pro(sk17i)で思うように設定ができません。設定画面で使っているマナーモードOn/Offアイコンが切り替わらないのです。
  sk17iでのみ発生するバグでもあるのかと思い、eclipseでステップ実行してみても異常はありません。試しに、マナーモードOnのアイコンしか使わないように変更しても、マナー モードOffのアイコンしか出ません。どうやら、端末にビルトインされたアイコンが間違っているようです。
 疑惑を確認するため、R.drawableのアイコンを表示するだけのアプリ? を動かしてみたら、予想通りの結果になりました。エミュレータではスピーカーにバツ印のマナーOnアイコンが、sk17iではマナーOffと同じになっています。何をどうしたらこんな事になるのやら?

 仕方がないので、自作アプリはバツ印を含んだ別のアイコン(android.R.drawable.ic_notification_clear_all)で代用することにしました。マーケットに出さない自給自足アプリなので、このへんはアバウトでも問題ありません。

2012年3月22日木曜日

sk17i

妻のメール用に、Xperia mini proを買いました。
去年IDEOS U8800を買った値段の半額で、画面の解像度以外は劣るところ無し。
小さい、サクサク、そして決め手は、スライド式キーボード付き。
しかも、ゴールデンウィークの頃には、公式のICS updateが予定されています。
IDEOS U8800を持っていなければ、自分用にもう一台欲しいくらいです。

2012年3月7日水曜日

IDEOS U8800 + MW600

IDEOS U8800のAurora ICSに入っていた音楽アプリを、ソニエリのBluetoothヘッドセットMW600で使ってみました。Froyoの頃はどのアプリでもタイトルが出なかったのですが、今は表示されています。今まではAVRCP 1.3非対応だったという事でしょうか?
Gingerbreadの頃は、ヘッドセットを紛失してBluetoothを使っていなかったので、どうだったかわかりません。

因みに、doubletwistで再生した音楽をBluetooth経由で聞こうとすると、再生開始後間もなくAndroidもろとも落ちてリブートします。間違って使わないように、アンインストールしました。

2012年2月28日火曜日

ICS on IDEOS U8800のAPN

公式のFroyo,GingerbreadはAPN初期値が空っぽでしたが、Aurora ICSはdocomo向けのAPNが最初から追加してありました。
でもワタシはbmobileユーザーなので、今までと同じように自分で追加したbmobileのAPNを使っています。

2012年2月26日日曜日

ICS on IDEOS U8800の不具合

Aurora ICSが安定していたと思ったら、PdaNetでカーナビとの接続設定中に自発リセットしました。もっとも、相手のカーナビもBluetooth使用中にリセットした事が数回あります。Bluetoothが危険なツボを突いてしまうようです。
その他にも、多少の不具合があります。

  • アクセスポイント圏内でWi-FiをONにしても自動的に接続しない。
  • カメラが使えない。最初にICSを入れた頃は使えたのに、今は何故か真っ暗。
  • Androidマーケットで非対応と判定されるアプリ多数。
  • シリアル番号がunknownになる。
これらが許せるなら、結構快適かも知れません。

2012年2月25日土曜日

ICS on IDEOS U8800 (2)

Aurora ICS化したIDEOS U8800は、OS自身の安定感は昨年末にHuaweiからリリースされたGingerbreadよりも勝る印象です。まだ二日しか経っていませんが、勝手にリセットした事はありません。その反面、RAMの残要領が少ない(60-70MB)せいか、アプリが起動時に固まる事が多いです。アプリが死んでもシステムは止まらないので、自動リセットに比べれば、軽度な問題と言えます。
過去に買ったToriSatが、Aurora ICSだと非対応端末と判定されてダウンロードできません。代わりのアプリはあるのですが、せっかく買ったToriSatが非対応なのは残念です。

2012年2月22日水曜日

ICS on IDEOS U8800

xda-developerのフォーラムで公開されていたICS 4.0.3をIDEOS U8800に入れてみました。しばらく使ってみます。
Home
Settings 


 

2012年2月18日土曜日

IDEOS U8800をアップデート

予告通り、新しい公式ビルドが公開されていたので、V100R001C00B526G001にアップデートしました。主要な修正は
a) Missing call issue .
b) MMS add attachment issue.
だそうですが、データ通信専用SIMなので関係なし。
ホーム画面のウィジェットが再起動でクリアされるバグが修正されて、やっと常用に耐えるようになりました。

2012年1月18日水曜日

Activity#onDestroy()はいつ呼ばれるのか?

今日見つけた、このIssueにやられました。
Issue 7033: OnDestroy not being called (on N1 running 2.1 latest)
http://code.google.com/p/android/issues/detail?id=7033


うすうす気づいてましたが、Activity#finish()を呼んでも、onDestroy()は期待通りに呼ばれるとは限らないようです。
Androidのアプリを書いたことがあれば、Activityのライフサイクル図は何度も見ていると思います。

http://developer.android.com/reference/android/app/Activity.html
ライフサイクルの終盤にあるonDestroy()へ伸びる矢印の説明を読んだなら、finish()を呼べば速やかにonDestroy()が呼ばれると期待するでしょう。しかし、そうならないケースが存在します。この事は、launchMode="singleInstance"を前提に書いたプログラムで問題になる場合があります。

2012年1月13日金曜日

Ubuntu 11.10/x86でICSビルド


Shuttle XS35(Atom D510)に2GB memoryというシステムで動いているUbuntu 11.10(x86,32bit)でIce Cream Sandwichをビルドしてみました。

make -j 4 でfull_panda-engのフルビルドにかかった時間は2時間強。
ほぼ同じ設定で、ビルドするのはコレが3回目。カーネルは無し。
16914.10user 1895.84system 2:11:02elapsed
因みに、ccacheの状況はこんなもん↓。
6GBも使ってませんが、64bitならば、もっと大きくなるでしょう。

cache hit (direct)                     0
cache hit (preprocessed)           64493
cache miss                         26336
called for link                     3101
compile failed                         3
couldn't find the compiler             1
unsupported source language         2729
unsupported compiler option          525
files in cache                     52672
cache size                           5.5 Gbytes
max cache size                      20.0 Gbytes
ビルドは出来たのですが、残念なことに、動かす実機を持っていません。


2011年12月4日日曜日

AOSPのミラーをgitwebで見る

kernel.orgがクラックされて使えなくなったAOSPのリポジトリが10月に復活しましたが、gitwebは同時公開となりませんでした。なので、自分で用意してみました。自分専用に用意するのが「イラネ」「マンドクセ」って人は、http://www.r3pek.org/node/105 のgitwebを使わせてもらいましょう。

AOSPのミラーは、ここ↓の猿真似で完成。
「AOSPをローカルミラーしてみた」の資料を公開したよん。  http://d.hatena.ne.jp/kinneko/20111025/p29
因みに、プロジェクトリストファイルを用意せずにgitwebを使うと、ディレクトリownerのGECOSフィールドがownerとして表示されるらしいので、ミラー用にaospユーザーを作りました。
me@falcon:~$ useradd -d /home/aosp -s /bin/bash aosp
me@falcon:~$ usermod -c "Android Open Source Project" aosp
me@falcon:~$ sudo mkdir /home/aosp
me@falcon:~$ sudo chown aosp:ao /home/aosp
me@falcon:~$ sudo -i -u aosp
aosp@falcon:~$ mkdir bin
aosp@falcon:~$ echo 'PATH=$HOME/bin:$PATH'>.profile
aosp@falcon:~$ . .profile
aosp@falcon:~$ curl https://dl-ssl.google.com/dl/googlesource/git-repo/repo > ~/bin/repo
aosp@falcon:~$ chmod +x ~/bin/repo
aosp@falcon:~$ mkdir AOSP
aosp@falcon:~$ cd AOSP
aosp@falcon:~$ repo init --mirror -u https://android.googlesource.com/mirror/manifest
aosp@falcon:~$ repo sync 
放って置いても日々更新されるように、スクリプトを用意してcrontabに追加。
aosp@falcon:~$ cat bin/mirrorAOSP.sh
#!/bin/sh
PATH=$HOME/bin:$PATH
cd $HOME/AOSP
repo sync
exit 0
aosp@falcon:~$ crontab -l
11 3 * * * /home/aosp/bin/mirrorAOSP.sh
ここから本題。
gitwebが無かったのでインストール。
me@falcon:~$ sudo apt-get install gitweb
/etc/gitweb.conf の中の $projectroot を書き換える。
# path to git projects (<project>.git)
$projectroot = "/home/aosp/AOSP";
 gitwebインストールと同時に/etc/apache2/conf.d/gitwebが用意されるので、http://example.com/gitweb/ を開けばAOSPのミラーが見えます。
下の例では、indextext.htmlでDROID logoとタイトル文字を追加してます。
さらに、descriptionをそれっぽく書き換えたかったので、
aosp@falcon:~$ for f in `locate .git/description|grep aosp/AOSP|fgrep -v '/.git'`; do dn=`dirname $f`; echo "Mirror of ${dn##*/}">$f; done
で一括書き換え。locateのdbはすぐには反映されないので、repo syncが終わって一晩待ってからやったほうがいいかも。
AOSPのgitweb(sort by date desc)
以上。

2011.Dec.10追記
http://www.r3pek.org/ が動いてないっぽい。困った人は http://android.git.linaro.org/gitweb 使うか、自分で鯖立てましょう。

2011年12月3日土曜日

IDEOS X5をGignerbreadにアップデート

U8800+/proよりやや遅れて、IDEOS X5(U8800)の公式Gingerbread(2.3.5)が公開されました。ただし、まだBeta 1.0という扱いです。このバージョンで見つかったバグを修正したリリース版が公開されるのだと思います。xda-developerの書き込みを見ると、"there is no Calendar and Calc apps."とか言ってる人がいましたが、GMSもちゃんと入ってます。早速root奪取して文鎮化してる人("it is in boot loop")も居て楽しそうです。
このGB祭に遅れまいと、私もFroyo(2.2.2)からメジャーアップデートしてみました。このアップデートでは、microSDを使った書き込みを2回行います。気のせいかもしれませんが、以前より動作が軽快になったような気がします。一時、GPS Statusでコンパスが動かなかったりしましたが、今は快調です。放置状態でリブートが一回ありました。稼働時間を見ると、他にも見ていない間にリブートがあったようです。

目立った大きな問題は、ddmsでログが取れない事。

Unable to open log device '/dev/log/main': No such file or directory
の一行でおしまい。ddmsを開いても、device-state, radio-state, logcatは何も情報を出してくれません。ログを参照しないせいか、process status, app-stateは取得できます。


Settingsのバージョン情報
ページ切り替え中のホーム画面


2011年11月5日土曜日

IDEOS X5をアップデート(Android 2.2.1→2.2.2)

IDEOS X5(U8800)の新しいファームウェアが2ヶ月前に公開されているのを、今日になって知りました。残念ながらGingerbreadではありませんでした。数日前にU8800+用のGBファームウェアが公開されたので、ワクテカしながら待つことにします。
Gingerbreadでは無いものの、Androidバージョンが2.2.1から2.2.2に上がるようなので、U8800をアップデートしました。このアップデートではユーザーデータが消去されるため、以前の環境をそのまま引き継げないようです。書き換え後の再起動時に /data がフォーマットされる旨のメッセージが表示されました。
CWM Recoveryで前のデータを戻せないか試してみましたが、androidアニメーションまで行って再起動を繰り返すばかり。面倒ですが、地道に環境を復旧します。

アップデート前
アップデート後