2011-07-13 17 views
1

それが可能かどうか疑問に思っていました。アプリケーションを「ライブラリローダー」と「ライブラリ」に分けて、私のサーバーから「ライブラリローダー」でライブラリピースをダウンロードできるとしましょう。Androidダイナミックリンク。強制更新について考える

このようにして、私は自分のアプリにアップデートをインストールするためにユーザーに頼る必要はありません。

は、私はそれはおそらくことはできません理解し、しかし、あなたはすべて

これは、社内のビジネスアプリやアップデート常に痛みです:)知っているのだろうかstillw。私はユーザーなどに通知を投げていますが、まだユーザーにアップグレードを促す問題があります。

答えて

0

はい、これは可能です。 Swype/Swypeインストーラはこのように動作します。あなたはそれを調べるかもしれない。私が覚えているから

あなたはAPKから旗上げインストーラをインストールし、それを実行します。

インストーラはSwype APKをダウンロードし、システムのダイアログを使ってあなたを管理し、Swypeをインストールして有効にします。

Swypeがベータキーの有効期限が切れたと判断した場合、それは無効になり、インストーラを使用して更新します。

これは動的リンクではありませんが、強制的な更新をサポートするシステムです。

更新:

ここでは、動的クラスローディングについて、Googleの協議からのブログのポスト:

http://android-developers.blogspot.com/2011/07/custom-class-loading-in-dalvik.html?utm_source=feedburner&utm_medium=feed&utm_campaign=Feed%3A+blogspot%2FhsDu+%28Android+Developers+Blog%29

+0

ありがとうございます!残念ながら、それは助けにはならない。彼らはクリックしてMarket and Updateに直接行くことができます。 – katit

+0

ええと、Android開発者のGoogleグループのこのメッセージは、この質問に興味があります: http://groups.google.com/group/android-開発者/ブラウズスレッド/スレッド/ 5f71b5f1cabd5d71# これは話している: http://en.wikipedia.org/wiki/OSGi – nmr

+0

@katit - 違いは、古いバージョンを無効にすることで、アプリを使い続けたい多くのユーザーは原則として**これを嫌うでしょう。 –

0

おそらく、あなたは確かにrootアクセス権を持っているならば、私は何もののNDKが必要と考えている。 NDKを使用してデータをロードすると、NDKは動的に実行されます。したがって、そのライブラリを置き換えると、明らかにその機能が更新されます。

しかし、私はこれに関して多くの可能性のある問題を見ています。あなたのライブラリがどこに保存されているか(アプリがインストールされていれば)書き込みアクセス権があるかどうかはわかりません。しかし、私はこれについては分かりません。フォルダは/ data/data /(パッケージ名)/ libです。私はあなたがそのフォルダの親にいくつかの限られたアクセス権を持っていることを知っています(あなたのデータベースが格納されている場所で)。

+1

ルートなしでは、インストール中にパッケージ化されたNDKライブラリが置かれている場所への書き込みアクセス権はありませんが、その場所からライブラリをロードするだけではなく、コンテキストによって検出されます。getDir()またはContext.getFilesDir()を呼び出し、System.loadLibrary()の代わりにSystem.load()を使用してフルパスと.soファイル名を使用してロードします。 –

関連する問題