スポンサー広告 - スポンサーサイト

--/--/-- (--) --:--

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

【Android】簡単メモ帳 - 統計情報 20121007

2012/10/07 (日) 23:50

特に区切りというわけでもないのですが、公開してある程度の期間が過ぎたので、記録として残しておくことにします。

■簡単なアプリ情報。
20121007_01

■総インストール数の推移。
20121007_02

■有効なインストール数の推移。
20121007_03

おおざっぱに、インストールした人の内1/3位の人がアンインストールせずにいてくれているようです。
これが多いのか少ないのかは不明ですが、結構良い塩梅なのではないでしょうか。たぶん。


■Androidのバージョン別
20121007_04
やはり2.Xが大勢です。でも15%が4.Xというのも驚きかも。


■端末別
20121007_05
特になし。


■国別
20121007_06

■言語別
20121007_07
当然ですが、ダントツで日本です。
一応アプリ上の文言の表記は英語には対応してあります。
アイコンが未対応ですが(汗)


■アプリのバージョン別
20121007_08
古いバージョンが利用されたままというのは、作者としては気持ちが悪いですね。
というか不具合があるのでできるだけ最新版を使用してほしいでっす(汗)


■携帯通信会社別
20121007_09
さすがにドコモが1位ですね。これがiPhoneアプリだとソフトバンクが1位ですかね。

なかなか興味深いですが、とりあえずはこんなところです。
今後の予定ですが、前回の更新で外部連携の機能を追加しましたが、外に向けた連携だけだったので、
外から受ける連携を追加しようかなとか考えています。

【Android】簡単メモ帳 - バージョン 1.1.2

2012/07/23 (月) 20:58

バージョンアップ

■変更点
1.メモが保存されない場合がある不具合を修正しました。
2.当日のメモ入力画面のみ、画面表示時のカーソルを末尾に移動するようにしました。

■詳細
1については、ついに原因を特定できました。

●再現方法
①日付は問わず、新規にメモ登録画面に遷移する。
②メモを入力する。
③画面の縦⇔横を変える。
④保存ボタンを押下する。
この時、画面には「保存しました」と表示されているにも関わらず、実際には保存されていませんでした。
既にメモが登録されている日付や、画面の縦⇔横を変えないまま操作した場合は問題ありません。

●原因
メモ入力画面に遷移した初期処理時に、その日付が新規か更新かのフラグを持ちます。
画面のオリエンテーションが変更された(コンフィグチェンジが発生した)ハンドラ内で、
新規・更新フラグも保存・復元していましたが、復元後に余計な処理をしていました。
入力されたメモデータも保存復元していたのですが、
 ・メモデータが存在していた場合は新規・更新フラグを「更新」に
 ・メモデータが存在してない場合は新規・更新フラグを「新規」に
としていました。
これ誤りです。正しくは判定が丸ごと不要で、単純に復元するだけで良いです。

単純にテスト不足ですねぇ(汗)
これが一人でやるお気楽プログラミングの限界でしょうか。
仕事でなら、要件定義、設計、コーディング、UT、ITを工程を踏むのですが、
さすがに個人的な作品にはそこまで手をかけていないです。
このスタンスは今後も変わらない気がしますが、できるだけなんとかします(汗)

2.については、数日使ってみた個人的な使い勝手の改善です。
当日のメモは追記することが多々あったので、当日のみカーソルの位置を変更しました。

それにしても画面のオリエンテーションには長いこと苦しめられますね。
まだ何かありそうな予感がしますが…
色々、何かとご迷惑をおかけしております<(_ _)>
まだ何か不具合・要望等があればなるべく対応していきたいと思います。

【Android】簡単メモ帳 - バージョン 1.1.1

2012/07/20 (金) 23:51

バージョンアップ

■変更点
1.レポートが上がっている例外に対する暫定対応。
2.メモ入力画面のレイアウト変更。

■詳細
1については、全てのアクティビティにpublicな引数無しのコンストラクタを実装しました。
親クラスのコンストラクタを呼び出すだけで何もしていません。
原因がちっとも思いつかないので、藁をも掴む思いでの暫定処置です。
しばらくはこれで様子見させてください(汗)

2については、
・ボタン群を画面下部に移動
 ボタンの類は上部にあると押しにくい気がしたので。
 Evernoteやgmailのアプリも操作パネルは画面下部にあるので真似ました。

・日付と入力欄を一緒にスクロールするように変更
 これで日付の領域の分だけ入力欄が広くなります。微々たるものですけども(汗)

・メモ表示時のカーソルの位置を末尾に指定していたのを取りやめる
 過去のメモを見る際には冒頭から見れた方が良いんじゃないかなぁという思いから。
 末尾に移動すると、上述のスクロール変更のおかげで
 日付が見えなくなる場合があったのでそれを回避する意味も。
 余計なお世話かもしれませんが、takが使ってみた上での対応という事で。

今回はこんなところです。
特殊なコーディングはしていないのでソースの提示は無しで。
メモ消失の根本的な原因はまだ判明していません。
再現方法がわかると対処できるんですけどもねぇ。
継続して調査をしますが、皆さんからの情報もお待ちしております。

【Android】簡単メモ帳 - 調査中の経過報告的な感じ

2012/07/16 (月) 23:12

コメントで、メモが消えてしまうとの不具合が寄せられております。
今のところ原因は特定できていません。
再現もできていないので、今回も時間がかかりそうな雰囲気です(汗)

上記の話と関連があるかどうかわかりませんが、例外情報が何件か送られて来ています。
スタック追跡
--------------------------------------------------------------------------------
バージョン:v1.1.0
レポート数: 4

java.lang.RuntimeException: Unable to instantiate activity ComponentInfo{tak.tools.memo/tak.tools.memo.Input}: java.lang.ClassNotFoundException: tak.tools.memo.Input in loader dalvik.system.PathClassLoader[/mnt/asec/tak.tools.memo-2/pkg.apk]
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1611)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1711)
at android.app.ActivityThread.access$1500(ActivityThread.java:120)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:952)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loop(Looper.java:130)
at android.app.ActivityThread.main(ActivityThread.java:3759)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:507)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:839)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:597)
at dalvik.system.NativeStart.main(Native Method)
Caused by: java.lang.ClassNotFoundException: tak.tools.memo.Input in loader dalvik.system.PathClassLoader[/mnt/asec/tak.tools.memo-2/pkg.apk]
at dalvik.system.PathClassLoader.findClass(PathClassLoader.java:240)
at java.lang.ClassLoader.loadClass(ClassLoader.java:551)
at java.lang.ClassLoader.loadClass(ClassLoader.java:511)
at android.app.Instrumentation.newActivity(Instrumentation.java:1021)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1603)
... 11 more
--------------------------------------------------------------------------------
要するに「メモ入力画面のクラスが見つからない!」という内容です。
がしかし!「そんなばかなっっっ!」というのが正直な感想です。
普通に考えればあり得ない状況です。
またコンフィグチェンジ関連ですかねぇ。
調べてみると、「必ず起る」って情報は割と出てきます。(ほとんどの場合がマニフェストファイルの記述ミスのようです)が、
「たまに起こる」って情報は見つからず。
ちなみに、7月15日現在で有効なインストール数は4,181件です。
この内v1.1.0の数は3,126件です。
このような状況で4件しかレポートが上がっていないのはどういうことなのだろうか。
みんな基本的にはレポート上げないのかしらん?
とはいえ、現象自体は疑っておらず、恐らく再現方法があるはずだと睨んでおります。
不具合の発生している方々にはご迷惑おかけしますが、解決にはまだしばらくかかりそうです。

とりあえず、現在の状況でした。

【Android】簡単メモ帳 - バージョン 1.1.0

2012/05/08 (火) 00:50

バージョンアップ

■変更点
1.カレンダー画面にて例外が発生する場合がある不具合の対応。
例外が発生している方はバージョンアップをお願いします。

■詳細
舌の根も乾かぬ内にという感じですね(汗)
1.0.9を公開後「アプリケーション エラー レポート」で例外が3件ほど上がっていました。
以下発生していた例外の詳細
----------
■クラッシュ
 例外クラス:android.os.BadParcelableException
 例外発生メソッド:Parcel.readParcelable()
--------------------------------------------------------------------------------
■スタック追跡
java.lang.RuntimeException: Unable to start activity ComponentInfo{tak.tools.memo/tak.tools.memo.Top}: android.os.BadParcelableException: Parcelable protocol requires a Parcelable.Creator object called CREATOR on class tak.tools.memo.Top$SaveData
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1659)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1675)
at android.app.ActivityThread.access$1500(ActivityThread.java:121)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:943)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loop(Looper.java:130)
at android.app.ActivityThread.main(ActivityThread.java:3701)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:507)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:866)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:624)
at dalvik.system.NativeStart.main(Native Method)
Caused by: android.os.BadParcelableException: Parcelable protocol requires a Parcelable.Creator object called CREATOR on class tak.tools.memo.Top$SaveData
at android.os.Parcel.readParcelable(Parcel.java:1967)
at android.os.Parcel.readValue(Parcel.java:1846)
at android.os.Parcel.readMapInternal(Parcel.java:2083)
at android.os.Bundle.unparcel(Bundle.java:208)
at android.os.Bundle.getBundle(Bundle.java:1078)
at android.app.Activity.onRestoreInstanceState(Activity.java:842)
at tak.tools.memo.Top.onRestoreInstanceState(Top.java:813)
at android.app.Activity.performRestoreInstanceState(Activity.java:816)
at android.app.Instrumentation.callActivityOnRestoreInstanceState(Instrumentation.java:1096)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1637)
... 11 more
----------
カレンダー画面では表示中のカレンダーの年月日を「java.util.Calendar」オブジェクトで管理しています。
んで、これを先日の更新時に「protected void onSaveInstanceState(Bundle outState)」メソッド内で引数の「outState」に保存するようにしたのですが、型が特殊なので「Parcelable」を利用していました。
が、どうやら上手く使いこなせていない模様。
一時保存データを復元するときに例外が発生している様です。
ただし、必ず発生するわけではありません。
何しろtakはこの現象を再現できていません(汗)

●対処方法
仕方が無いのでとりあえず以下の方法で回避することにしました。
Calendarをlongに変換し、「Bundle.putParcelable()」を廃止して「Bundle.putLong()」で保存するようにする。
復元時にはlongからCalendarを作るようにする。
これで「Parcelable」を使用せずにデータの保存と復元を行うようになったので「BadParcelableException」は発生しなくなると思われます。

対処したは良いものの、そもそもこの状況が再現できていないので根本的な解決になっているのかどうかいまいち確信が持てません。
とりあえず暫定処置ということで、例外が発生している方々にはご迷惑をおかけしております(汗)
「Parcelable」はいつかは使いこなす必要が出てきそうな機能なので、今後の課題ですね。

取り急ぎこんな感じです。
検索フォーム
RSSリンクの表示
カレンダー
07 | 2017/08 | 09
- - 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 - -
月別アーカイブ
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。