LGPLなライブラリの取り込みとか

目標としてるPerfectViewerがネットワーク共有ファイル(CIFS/SMB)の読み込みに対応してしまった
ここまでやられると、とても今更追いつけないよなぁ、とかモチベーション低下中orz

共有ファイル対応自体は、JCIFSライブラリとか使えば簡単に出来るけどね
問題はライセンス
LGPLなので、条件を満たさないとアプリ自体のソース公開義務が発生してしまう
大雑把に言うと、同じインターフェースの別ライブラリに自由に差し替えて実行できるようになってないと、差し替えてコンパイルできるようにする名目でソース公開が必要とされる
なので、Windowsのdllとかみたいに動的リンクの仕組みであればソース公開義務は回避できる

androidアプリの場合、ライブラリも含めて一つの.apkファイルにコンパイルされてしまう
.apk自体はただのzipファイルだが、ソース部分はやっぱりライブラリを含めてひとつの.dexファイルという中間言語のバイナリに変換されている
特殊なツールを使ってリバースエンジニアリングすればライブラリ部分だけ切り出して別のライブラリに差し替える事も可能ではあるけど、それで回避できるくらいなら、既存のあらゆるプログラムもリバースエンジニアリングすればできる訳で、許されるハズもないと思う

かと言って、フルスクラッチするほどの知識も技術も根気もないし
PerfectViewerはどうしてるのか?と思ってデベロッパーのサイトを見たらapkを配布してたのでzip解凍して中身を見てみたら、まさにJCIFSを使っている様子
普通にライブラリとして組み込んでるだけで、ソース公開義務を回避する策を講じてるとは思えないんだが……ソース公開請求とかしたら見せてくれるのかね?

それはさておき、俺流の回避策としては
・ユーザーが別途自分で公式の配布サイトからjarファイルを入手
・アプリ指定のフォルダに置いてもらう
・アプリ側ではDexClassLoaderを使って動的に.dexファイルを生成して使う
といった感じで考えてみた
素のjarをロードできるのか分からんけど、ダメでも元jarを加工したjarをこちらでソース込みで配布すれば良いだろう
どうせネットワークアクセスのパーミッションが必要になるから、アプリ側から配布サイトにアクセスして自動的に取得する、てやった方がユーザーの手間がなくて良いかな?

この仕組みがうまくいくなら、将来的に機能拡張に対応できるアプリも作れるかな?
ユーザーが欲しいプラグインだけ選択して使えるような

まぁいずれにせよ、とりあえずは将来のバージョンアップで対応だなぁ
まずはいい加減アプリをリリースしないと
プログラム的にはとっくに形になってるんだけど、デザインのセンスがないもので、アイコンとか本棚の背景とかどうしようかな、という所で思考停止してしておりますorz
だれかデザインやってくれないかなぁ