次の問題があります。
カスタム ホスト ファイルを作成して、アプリケーションのいくつかの機能をテストし、それを Android エミュレーターにプッシュします。問題は、これらの設定がすぐに有効にならないことです。アクティブになるまで 10 分ほど待たなければなりません。
私の質問は次のとおりです。新しいホストファイルを即座にアクティブにする方法は? テストするさまざまな設定がたくさんあり、毎回 10 分待つことはできません。
次の問題があります。
カスタム ホスト ファイルを作成して、アプリケーションのいくつかの機能をテストし、それを Android エミュレーターにプッシュします。問題は、これらの設定がすぐに有効にならないことです。アクティブになるまで 10 分ほど待たなければなりません。
私の質問は次のとおりです。新しいホストファイルを即座にアクティブにする方法は? テストするさまざまな設定がたくさんあり、毎回 10 分待つことはできません。
Java は独自の内部 DNS キャッシュを維持します。オペレーティング システムは新しいホスト ファイルをすぐに反映しますが (ping
コマンド ラインでそれを確認します)、何もキャッシュしないように Java に指示する必要があります。次の行をテスト アプリケーションに追加します。
System.setProperty("networkaddress.cache.ttl" , "0");
System.setProperty("networkaddress.cache.negative.ttl" , "0");
これらのプロパティの詳細については、http: //docs.oracle.com/javase/7/docs/technotes/guides/net/properties.htmlを参照してください。
ルート化された Samsung Galaxy S でホスト ファイルを編集したところ、変更がすぐに反映されました。おそらく、あなたが見ている問題は ADB に関係しているのでしょうか?
これは私がしました:
cp /etc/hosts /mnt/sdcard/hosts.new
。/mnt/sdcard/hosts.new
プリインストールされているテキスト エディターを使用して編集し、必要な 2 つのエントリを追加します。IP、非修飾ホスト名、FQDN などを使用192.168.2.81 siva siva.myinventeddomain.org.au
しましたが、理論上は他の形式も機能するはずです。su
、root に戻ります。/system
デフォルトではroなので、mount -o remount,rw /system
;でrwにする必要がありました。cd /etc
(シェル プロンプトに では/system/etc
なく が表示されたため/etc
、シンボリック リンクの悪ふざけが疑われます)。127.0.0.1 localhost
; を使用して、デフォルトのホスト ファイル (のみを含む) をバックアップしますmv hosts hosts.old
。mv /mnt/sdcard/hosts.new hosts
;を使用して新しいホスト ファイルをインストールします。sync
(単に私が妄想的だからです。これは必要ないはずです);/system
fs ro をmount -o remount,ro /system
;で再マウントします。siva
し、結合された URL/検索フィールドに入力します (siva
追加した 2 つのホスト エントリの 1 つです)。これらの変更の前は、ステップ 11 で 'siva' などの愚かな Google 検索が行われていました。それらの直後に、予想どおり、LAN httpd 仮想ホストのフロント ページが表示されます。
動作してから動作しないまでに 10 分もかかりませんでした。
Sun の Java doco へのリンクは、関連する場合と関連しない場合があります (おそらく関連していません)。Android には Java VM がまったく含まれていません。Sun の VM は言うまでもありません。Dalvik と呼ばれる別の VM を実行します - ウィキペディアのエントリを参照してください: http://en.wikipedia.org/wiki/Dalvik_%28software%29
Java によく似た言語で Android フォンをプログラミングできるという事実は、的外れです。
hosts ファイルは試していません。しかし、カスタムDNSを使用してみました...
やった!これで、DNS 名/IP ペアリングをリース時間とともに管理できるようになりました (たとえば、電話は必要に応じて 30 秒ごとに IP を更新します)。やや複雑ですが、ホストファイルを電話にロードする必要はありません:-)。