Androidのアプリ開発関連のブログ

FTPクライアント配信した

制作していたFTPクライアントは、ちょっとサボってて遅れたが昨日完成して配信した。



先週の時点で一通り作り終わって、翻訳、アイコン等画像作成、AdMob設置で終わりと思ってたんだが、
完成したつもりの状態でテストしてみて、登録済みサーバーの編集機能と、リモートファイルの外部アプリでの編集機能が実装されてないことに気づいたんで実装した。


これで4個目のアプリをGoogle Playで配信したが、今後もどんどんなにか作って配信していきたい。が、ネタがないw

FTP関連のアプリを2個続けて、SFTPにも対応させたから、SSH端末アプリなんかやりたいところではあるが、
topとかviみたいな画面全体奪うようなコマンドの実装ってどうなってるんだろうか?
そこらできればやりたいし、非対応でもとりあえずのSSH端末としてはありか?

まあ、なにか適当に作ろうと思うが、広告設置が向かなそうなのは他アプリへの誘導用にしか役立たないからあまりやらない方針。

一通り機能できたぽい

制作中のFTPクライアントは、一通り機能できた感じ。

サーバー登録は前のテキストエディターをほぼ完全流用でいいと思ったが、前はgetがファイルパスを返して戻ってから読み込みだったが、
今回のは読み込みというものが無く、getするときに転送だから、秘密鍵取得のために読み込み処理入れる必要があった。


後は英語化をしようと思うのと、
アイコンとかGoogle Playで必要な画像の準備と、AdMobの設置かな。

今週前半に完成させられる見込みだったが、週末までかかってしまった。

layout_weightの動的変更はできないぽい・・・

制作中のアプリで縦画面時はListViewを一つ非表示にして縦に並べようとしたが、
layout_weightをJavaで動的変更すれば簡単と思ったが、layout_weightはViewGroup.addViewするときにしか設定できないようで、Viewを設置したまま後から変更することはできないらしい・・・

ListViewの高さ設定したりとかちょっと試したが、良い感じにはできなかったんで、
諦めて縦画面時もListView2つ表示して常に2分割するレイアウトにすることにした。


あとは画面開店時の状態復元と、サーバー登録とかで終わりにする。

数日中に完成しそう

制作中のFTPクライアントは、先日までにFTPでの機能を一通り終わらせて、今全機能をSFTPに対応させた。
というわけで、後はサーバー登録とかだが、前のテキストエディタのソースを完全流用できると思うんですぐ終わる予定。

SFTP対応は、JschのSFTP関連はパーミッション変更とか必要なメソッドが揃ってるんですぐできた。
これ作ってて知ったが、FTPにはchmod相当の機能って無いんだね。
FTPでのchmodはサーバーコマンドでchmodするみたいなんで、そうした。
Commons NetのFTPにサーバーコマンド送る機能があったんで難しくはない。

ListViewの動的更新処理中にタッチするとアプリが落ちる

制作中のアプリでステータス表示の処理を作ったが、
「ListViewの動的更新処理中にタッチするとアプリが落ちる。」
という現象に遭遇した。

ステータスはListViewに表示で、連続して大量にListViewを更新する。
のだが、logcatになにも表示されないでアプリが落ちる現象が発生した。

logcatになにも表示されないので、Timer使った部分かAsyncTaskLoaderの非同期部分が原因かと思ったが、
何度か再現していると、ステータス更新処理中にスクロールしようとしてListViewを触ると100%落ちることが判明。


回避方法は、今回の場合はListViewはスクロールできなくて良いので、
View.setEnabled(false)
か、
View.setOnTouchListener()
でListViewを触った時に何もしないようにすればいいみたい。
スクロールが必要な場合は面倒だね。
setEnabledの方はタッチ以外に影響あるかもなんで、setOnTouchListenerの方で対処した。


テストはAndroid 4.2のエミュレーターで。