Linux上にAndroid開発環境を構築し、実機でテストする手順 (CentOS 6.3 x64にUSBケーブルで端末を接続)
Linux上で、Androidアプリ開発環境を構築するための手順。
- スマホの実機がなくても,エミュレータでアプリの動作テストが可能。
- 実機でテストしたい場合、端末のメーカがLinux用のUSBドライバを公開していない場合であっても,USBケーブルで接続することが可能。
環境:
- CentOS 6.3, 64bit
- (1)JDKのインストール
- (2)Eclipseのインストール
- (3)Eclipseの日本語化
- (4)Android SDKのインストールと、64ビット化
- (5)EclipseにADTプラグインをインストール
- (6)エミュレータでサンプルアプリを動かす
- (7)実機でサンプルアプリを動かす
- 補足
(1)JDKのインストール
$ javac -version javac 1.7.0_09 $ rpm -qa | grep jdk java-1.7.0-openjdk-1.7.0.9-2.3.4.1.el6_3.x86_64 java-1.7.0-openjdk-devel-1.7.0.9-2.3.4.1.el6_3.x86_64 java-1.7.0-openjdk-javadoc-1.7.0.9-2.3.4.1.el6_3.noarch java-1.6.0-openjdk-1.6.0.0-1.50.1.11.5.el6_3.x86_64
既に入っていたが、OpenJDKなのでOracle製の最新のJDKを入れ直す。
root権限で:
$ rpm -e --nodeps java-1.7.0-openjdk-1.7.0.9-2.3.4.1.el6_3.x86_64 $ rpm -e --nodeps java-1.7.0-openjdk-devel-1.7.0.9-2.3.4.1.el6_3.x86_64 $ rpm -e --nodeps java-1.7.0-openjdk-javadoc-1.7.0.9-2.3.4.1.el6_3.noarch $ rpm -e --nodeps java-1.6.0-openjdk-1.6.0.0-1.50.1.11.5.el6_3.x86_64
OracleのJDKダウンロードページからインストーラのバイナリをダウンロードし、実行する。
Accept License Agreementをクリック。
Linux x64の欄にある jdk-6u43-linux-x64.bin をダウンロード。
保存先は /home(ユーザ名)/ダウンロード でOK。
ファイルサイズは70MB程度。
インストールを実行。
$ cp -p jdk-6u43-linux-x64.bin /opt/ $ cd /opt/ $ chmod +x jdk-6u43-linux-x64.bin $ ./jdk-6u43-linux-x64.bin $ /opt/jdk1.6.0_43/bin/javac -version javac 1.6.0_43
ブラウザで下記のウィンドウが現れるが閉じる。
- Java Development Kit (JDK) Registration
インストールしたJDKが利用されるように設定。
$ vi /home/(ユーザ名)/.profile if [ -z "$JAVA_HOME" ] ; then JAVA_HOME="/opt/jdk1.6.0_43" export JAVA_HOME PATH="$JAVA_HOME/bin:$PATH" fi
これでJDKをインストール完了。
※JDK7をRPMでインストールしようとすると,下記のようなエラーに苦しめられる。
$ rpm -ivh jdk-7u17-linux-x64.rpm 準備中... ########################################### [100%] 1:jdk ########################################### [100%] Unpacking JAR files... rt.jar... Error: Could not open input file: /usr/java/jdk1.7.0_17/jre/lib/rt.pack jsse.jar... Error: Could not open input file: /usr/java/jdk1.7.0_17/jre/lib/jsse.pack charsets.jar... Error: Could not open input file: /usr/java/jdk1.7.0_17/jre/lib/charsets.pack tools.jar... Error: Could not open input file: /usr/java/jdk1.7.0_17/lib/tools.pack localedata.jar... Error: Could not open input file: /usr/java/jdk1.7.0_17/jre/lib/ext/localedata.pack
For users of Fedora Core (Red Hat) releases
http://comments.gmane.org/gmane.linux...
- I have never had any luck with the rpm. (JDKのインストールでRPMを使うのは止めておけ)
(2)Eclipseのインストール
Eclipseのバージョンは、現時点では3.7 Indigoを使うことにする。
※バージョン4.2 Junoを選ばない理由:
Pleiades All in One 4.2.1.v20121007 (Eclipse 4.2.1 SR1 Juno for Windows ベース)
http://mergedoc.sourceforge.jp/index....
- 「注意: Eclipse Juno は環境により長時間使用すると重くなる不具合が報告されています。」
Eclipse Juno のパフォーマンス問題
http://www.infoq.com/jp/news/2012/10/...
- バージョン3.8に比べて4.2Junoは重く,パフォーマンスの違いがとても大きい。
- 2012年10月の情報。
Eclipse 3.7 Indigoのダウンロードページをブラウザで開く。
「Eclipse IDE for Java Developers」の
「Linux 64 Bit」をダウンロード。
ファイルサイズは150メガある。
保存先は /home/(ユーザ名)/ダウンロード とする。
※LinuxでEclipseをインストールする場合、ユーザ単位でホームディレクトリ内を設置場所とすることが推奨されている。
書籍「プログラミングAndroid」の1章を参照。
Eclipse インストールと日本語化 (CentOS 5.4 64bit) 編|赤び〜の備忘録 & 子育て月記
http://ameblo.jp/kurabeat/entry-10533...
- ユーザ単位でplug-inを自由に導入させるため、インストール先は ~/
LinuxではEclipseをどこにインストールした方がいいか - Google グループ
https://groups.google.com/forum/?from...
- /usr/localの下でプラグインをインストールしようとしたら、多分パーミッションが問題でインストールできず
- ホームディレクトリの下に、一般ユーザでeclipseをインストールし直したところ、問題なくインストール完了
Eclipseのダウンロードが完了したら、ホームフォルダの直下に解凍する。
$ cd /home/(ユーザ名)/ダウンロード $ tar xvzf eclipse-java-juno-SR2-linux-gtk-x86_64.tar.gz -C ../ $ cd ../eclipse $ ls -1 about.html about_files artifacts.xml configuration dropins eclipse eclipse.ini epl-v10.html features icon.xpm libcairo-swt.so notice.html p2 plugins readme
参考:
tarで圧縮したファイルの解凍時の保存先指定 - Linux系OS - 教えて!goo
http://oshiete.goo.ne.jp/qa/3084773.html
- tar zxvf test.tar.gz -C /home/hoge
(3)Eclipseの日本語化
次に、Eclipseの日本語化を行なう。
Pleiades All in Oneパッケージを利用できるOSはWindowsだけなので、Linuxの場合はPleiadesをプラグインとしてインストールする。
Pleiades プラグインのダウンロードページをブラウザで開く。
「Pleiades プラグイン・ダウンロード」から、安定版をダウンロード。
先ほどと同様に、ホームのダウンロードフォルダに保存。
解凍して、必要なファイル(pluginsとfeatures)をEclipse側にコピー。
$ cd /home/(ユーザ名)/ダウンロード $ unzip pleiades_1.4.0.zip $ cp -r plugins/* ../eclipse/plugins/ $ cp -r features/* ../eclipse/features/
次に、Eclipseの設定ファイルを編集して、Pleiadesを認識させる。
$ vi ../eclipse/eclipse.ini -startup plugins/org.eclipse.equinox.launcher_1.3.0.v20120522-1813.jar --launcher.library plugins/org.eclipse.equinox.launcher.gtk.linux.x86_64_1.1.200.v20120913-144807 -product org.eclipse.epp.package.java.product --launcher.defaultAction openFile -showsplash org.eclipse.platform --launcher.XXMaxPermSize 256m --launcher.defaultAction openFile -vmargs -Dosgi.requiredJavaVersion=1.5 -Dhelp.lucene.tokenizer=standard -XX:MaxPermSize=256m -Xms40m -Xmx512m
最終行に、下記の一行を追記。
-javaagent:plugins/jp.sourceforge.mergedoc.pleiades/pleiades.jar
また、「-vmargs」の上の行に,下記の内容を追記。
-vm /opt/jdk1.6.0_43/bin/java
なお、viコマンドの使い方は下記のエントリを参照。
※Vim内部のヤンクではなく、クリップボードからのペーストになるので、
ターミナルのメニューバーから 編集>貼り付け を実行すればよい。
今から1分で,viコマンドの使い方を覚えてもらうためのページ
http://language-and-engineering.hatenablog.jp/entry/20121207/p1
そして、EclipseをCUIから起動。
起動引数に,プラグインの初期化オプションを忘れずにつけておく。
$ ../eclipse/eclipse -clean
スプラッシュ画面と共に、下記のようなメッセージが表示される。
キャッシュのクリーンアップ中...
この処理は数分かかる場合があります。しばらくお待ち下さい。
ワークスペース・ランチャーのダイアログで,ワークスペースの選択をする。
デフォルトで /home/(ユーザ名)/workspace となるはずなので、それでOK。
Eclipseのメニュー部分の文言類が、日本語になっていればこれでOK。
※なお、Eclipse起動時に下記のようなログがコンソールに出力されるが、無視する。
INFO [main] (PropertySet) load 0.001 秒 - 14 エントリー config.ini 処理中のエラー: org.eclipse.equinox.internal.p2.extensionlocation.SiteListener@7a86b09d: java.lang.IllegalArgumentException 処理中のエラー: org.eclipse.equinox.internal.p2.extensionlocation.SiteListener@6391b687: java.lang.IllegalArgumentException 処理中のエラー: org.eclipse.equinox.internal.p2.extensionlocation.SiteListener@73668c22: java.lang.IllegalArgumentException 処理中のエラー: org.eclipse.equinox.internal.p2.extensionlocation.SiteListener@517a475e: java.lang.IllegalArgumentException
※Eclipseを起動する際に、Java VMのエラーで起動できない場合がある。
下記のようなダイアログが表示される。
JVM terminated. Exit code=1 /usr/bin/java -Dosgi.requiredJavaVersion=1.5 -Dhelp.lucene.tokenizer=standard -XX:MaxPermSize=256m -Xms40m -Xmx512m -javaagent:plugins/jp.sourceforge.mergedoc.pleiades/pleiades.jar -jar /home/(ユーザ名)/eclipse//plugins/org.eclipse.equinox.launcher_1.3.0.v20120522-1813.jar -os linux -ws gtk -arch x86_64 -showsplash /home/(ユーザ名)/eclipse//plugins/org.eclipse.platform_4.2.2.v201302041200/splash.bmp -launcher /home/(ユーザ名)/eclipse/eclipse -name Eclipse --launcher.library /home/(ユーザ名)/eclipse//plugins/org.eclipse.equinox.launcher.gtk.linux.x86_64_1.1.200.v20120913-144807/eclipse_1502.so -startup /home/(ユーザ名)/eclipse//plugins/org.eclipse.equinox.launcher_1.3.0.v20120522-1813.jar --launcher.overrideVmargs -exitdata 130015 -product org.eclipse.epp.package.java.product -clean -vm /usr/bin/java -vmargs -Dosgi.requiredJavaVersion=1.5 -Dhelp.lucene.tokenizer=standard -XX:MaxPermSize=256m -Xms40m -Xmx512m -javaagent:plugins/jp.sourceforge.mergedoc.pleiades/pleiades.jar -jar /home/(ユーザ名)/eclipse//plugins/org.eclipse.equinox.launcher_1.3.0.v20120522-1813.jar
この場合は,下記のリンクを参考にeclipse.iniを書き換えるなどして対処する。(VMのパスとか)
もしだめなら、JDKとEclipseをインストールし直してみる。
Eclipse Europa for J2EEが起動できない時の対処法 | 株式会社シンメトリック公式ブログ - 携帯開発から生まれる技術情報
http://symple.jp/22.html
- Eclipse_HOMEのeclipse.iniファイルの-vmargs、-Dosgi.requiredJavaVersion=1.5、-Xms40m、-Xmx512mの4行を削除する
解決! eclipseが立ち上がらなくなった(JVM terminated. Exit code=-1)最終結果 - Nanの備忘録
http://d.hatena.ne.jp/Nan_Homewood/20...
- eclipse.exe のフォルダにある eclipse.ini にて -vm オプションで JavaVM を指定する。
稲員勇輝の覚書 eclipse
http://linux971.blog92.fc2.com/blog-c...
- メモリ不足エラー
※あるいは、JVMの起動エラーダイアログと共に、CUI上に下記のようなエラーメッセージが出ているかもしれない。
Error opening zip file or JAR manifest missing : plugins/jp.sourceforge.mergedoc.pleiades/pleiades.jar Error occurred during initialization of VM agent library failed to init: instrument
この場合、下記の対処法で解決できる。
MacのEclipseに日本語化プラグインPleiadesを入れる時の注意点 - 強火で進め
http://d.hatena.ne.jp/nakamura001/201...
- eclipse.ini に追加する .jar ファイルへのパスをフルパスにすればOK
(4)Android SDKのインストールと、64ビット化
下記のURLにアクセス。
Get the Android SDK のページで,
ADT Bundleというテーブルの
Linux 64-bitのファイルをダウンロードする。
- I have read and agree with the above terms and conditions
にチェックを入れてダウンロード実行。
/home/(ユーザ名)/ダウンロード
に保存。
ファイルサイズが400MBあるので、時間がかかる。
終わったら解凍。
$ unzip adt-bundle-linux-x86_64-20130219.zip -d ../
unzipで解凍先のパスを指定できますか? | Linux系OSのQ&A【OKWave】
http://okwave.jp/qa/q1077101.html
次に、ダウンロードしたSDKが64ビット環境で動作するようにする。
この作業をスキップしてしまうと、64ビット環境のために、adbなどAndroidの各種ツールが動かないという場合がある。
その場合、32ビットアプリケーションとの橋渡しをするようなパッケージをインストールすればよい。
$ cd /home/(ユーザ名)/adt-bundle-linux-x86_64-20130219/sdk/platform-tools $ ./adb bash: ./adb: /lib/ld-linux.so.2: bad ELF interpreter: そのようなファイルやディレクトリはありません
これは、64ビット環境なのでadbが動作していないというサインだ。
Android adb: /lib/ld-linux.so.2: bad ELF interpreter: No such file or directory | Xinotes
http://www.xinotes.org/notes/note/839/
- I'm running 64-bit Fedora but Android adb is looking for 32-bit Linux loader. This is resolved by installing the 32-bit libraries.
- # yum whatprovides ld-linux.so.2
- I did the same for libncurses.so.5 and libstdc++.so.6 to resolve all dependencies.
CentOS 64bit で /lib/ld-linux.so.2: bad ELF interpreter: No such file or directory って怒られた際にやったこと | slumbers
http://slumbers99.blogspot.jp/2012/04...
SDKツール類の64ビット対応作業をする。
指示されたパッケージをインストール。依存性が完全に解決するまで、yumを繰り返す。
$ yum install ld-linux.so.2 Loaded plugins: downloadonly, fastestmirror, refresh-packagekit, security Loading mirror speeds from cached hostfile * base: mirrors.163.com * extras: ftp.tsukuba.wide.ad.jp * updates: mirrors.163.com Setting up Install Process Resolving Dependencies --> Running transaction check ---> Package glibc.i686 0:2.12-1.80.el6_3.7 will be installed --> Processing Dependency: libfreebl3.so(NSSRAWHASH_3.12.3) for package: glibc-2.12-1.80.el6_3.7.i686 --> Processing Dependency: libfreebl3.so for package: glibc-2.12-1.80.el6_3.7.i686 --> Running transaction check ---> Package nss-softokn-freebl.i686 0:3.12.9-11.el6 will be installed --> Finished Dependency Resolution Dependencies Resolved ================================================================================ Package Arch Version Repository Size ================================================================================ Installing: glibc i686 2.12-1.80.el6_3.7 updates 4.3 M Installing for dependencies: nss-softokn-freebl i686 3.12.9-11.el6 base 116 k Transaction Summary ================================================================================ Install 2 Package(s) Total download size: 4.4 M Installed size: 13 M Is this ok [y/N]: y Downloading Packages: (1/2): glibc-2.12-1.80.el6_3.7.i686.rpm | 4.3 MB 00:55 (2/2): nss-softokn-freebl-3.12.9-11.el6.i686.rpm | 116 kB 00:00 -------------------------------------------------------------------------------- Total 78 kB/s | 4.4 MB 00:58 Running rpm_check_debug Running Transaction Test Transaction Test Succeeded Running Transaction Warning: RPMDB altered outside of yum. ** Found 3 pre-existing rpmdb problem(s), 'yum check' output follows: 1:libreoffice-core-3.4.5.2-16.1.el6_3.x86_64 has missing requires of libjawt.so(SUNWprivate_1.1)(64bit) 1:libreoffice-ure-3.4.5.2-16.1.el6_3.x86_64 has missing requires of jre >= ('0', '1.5.0', None) postgresql-jdbc-8.4.701-8.el6.noarch has missing requires of java Installing : glibc-2.12-1.80.el6_3.7.i686 1/2 Installing : nss-softokn-freebl-3.12.9-11.el6.i686 2/2 Verifying : nss-softokn-freebl-3.12.9-11.el6.i686 1/2 Verifying : glibc-2.12-1.80.el6_3.7.i686 2/2 Installed: glibc.i686 0:2.12-1.80.el6_3.7 Dependency Installed: nss-softokn-freebl.i686 0:3.12.9-11.el6 Complete! $ ./adb ./adb: error while loading shared libraries: libncurses.so.5: cannot open shared object file: No such file or directory $ yum install libncurses.so.5 〜〜 $ ./adb ./adb: error while loading shared libraries: libstdc++.so.6: cannot open shared object file: No such file or directory $ yum install libstdc++.so.6 〜〜 $ ./adb version Android Debug Bridge version 1.0.31
ようやくadbが64ビット環境で正常に動作するようになった。
次に、SDKマネージャを起動。
$ cd /home/(ユーザ名)/adt-bundle-linux-x86_64-20130219/sdk/tools $ ./android
Android SDK Managerのウィンドウが表示される。
Toolsの他に、自分が使いたいAndroid SDKのバージョンを複数選択。
Installを実行。Accept Licencesを押下しておく。
30分〜1時間ほど時間がかかるが、各プラットフォームのSDKが順々にダウンロードされる。
※もし、adbの64ビット対応作業を済ませないまま、先にSDKマネージャを走らせてしまうと,
SDKマネージャがadbをrunする部分で下記のようなエラーになる。
Stopping ADB server failed (code -1). Unable to run 'adb': Cannot run program "/home/(ユーザ名)/adt-bundle-linux-x86_64-20130219/sdk/platform-tools/adb": error=2, そのようなファイルやディレクトリはありません. Starting ADB server failed (code -1).
これで、SDKのインストールは終わり。
(5)EclipseにADTプラグインをインストール
次に、EclipseからAndroid SDKを利用できるようにするための設定を行なう。
Eclipseのホームフォルダから、 ./eclipse で起動。
ウィンドウ>設定>インストール/更新>使用可能なソフトウェア を開く。
追加ボタンを押下。
「サイトの追加」ダイアログ中で、下記のように記入してOKを押下。
- 名前: ADT Plugin
- ロケーション: https://dl-ssl.google.com/android/eclipse/
OKボタンで設定ダイアログを閉じる。
次に、
ヘルプ>新規ソフトウェアのインストール
を開き、作業対象のドロップダウンから、先ほど作成した ADT Plugin のサイトを選択。
「開発ツール」という項目が現れるのでチェックし、次へを押下。
インストール詳細のダイアログで,次へを押下。
「使用条件の条項に同意します」を選択して、完了を押下。
通信が始まる。
途中で、
「警告:署名なしコンテンツを含むソフトウェアをインストールしています。
このソフトウェアの真正性または妥当性を実証できません。
インストールを続行しますか?」
というダイアログが出る。
OKを押下。
完了すると、Eclipseの再起動を促すダイアログが表示されるが、
「いいえ」を選び、今は再起動しないでおく。
Eclipseを手動で終了。
新しいプラグインを導入した直後の起動なので、下記のようにEclipseを起動。
$ ./eclipse -clean
起動後、
「設定でAndroid SDKのロケーションが設定されていません。」
と出るので,
「設定を開く」を押下。
「使用統計をGoogleに送信する」にチェックが付いたまま,続行を押下。
SDKロケーションとして,
- /home/(ユーザ名)/adt-bundle-linux-x86_64-20130219/sdk/
を入力し、「適用」を押下してOK。
※末尾にスラッシュを付けないと悲惨な事になる。
Android:Error executing aapt. - りりーの幸せ日記
http://trumpetlily777.blog.fc2.com/bl...
- android-sdk と platform-tools の間に、\マークがありません
具体的には、こんなエラーが出る。
- Error executing aapt. Please check aapt is present at /home/(ユーザ名)/adt-bundle-linux-x86_64-20130219/sdkplatform-tools/aapt LinuxHoge 行 1 Android ADT Problem
次に、既存のSDKロケーションを利用する設定で,上記と同じパスを入力してOK。
Googleに統計情報を送信する設定を再度肯定して、完了。
次に、これをEclipse上で使いやすくする。
ウィンドウ>パースペクティブのカスタマイズ
から、
「ショートカット」タブを選択して、Android にチェックし、OK。
こうすれば、メニューバーの「ファイル」の項目から,
Androidプロジェクトを新規作成したりしやすくなる。
(6)エミュレータでサンプルアプリを動かす
ファイル>新規>Androidアプリケーション・プロジェクト
で、アプリケーション名は適当に LinuxHoge とでもする。
次へ、を連打して、完了。
プロジェクトが作成される。
もし、「Rを変数に解決できません」などのエラーが表示されたら、SDKのロケーションの設定が間違っている。
ここで、下記のようなエラーが出る場合がある。
/home/(ユーザ名)/adt-bundle-linux-x86_64-20130219/sdk/platform-tools/aapt: error while loading shared libraries: libz.so.1: cannot open shared object file: No such file or directory
その場合、Eclipseを一旦閉じてから、yum install libz.so.1 して、Eclipseを普通に再起動しよう。
プロジェクトのバツマークも消え,問題ビューからもエラー表示が消えているはずだ。
ここで、
Eclipseのメニューから,実行>実行>Android・アプリケーション
とすると、
「互換性があるターゲットが見つかりませんでした。
新規Android仮想デバイスを追加しますか?」
と出る。
はい>新規Android仮想デバイスを起動する>マネージャー
>Android Virtual Devices>新規
で、仮想マシンの情報を適当に入力する。
- AVD名:my_avd
- 装置:Nexus 7
- ターゲット:Android 4.2.2
みたいな感じでOK。
Android Virtual Device Managerを閉じる。
Android Device Chooserで、リフレッシュを押下。
今作ったAVDが表示されるので、選択してOKを押下。
エミュレータが起動する。
しばらくするとOSが立ち上がる。
そして、ここで作ったアプリが起動し、
真っ白い画面に「Hello, World!」が表示される。
(7)実機でサンプルアプリを動かす
SHARPのUSBドライバがWindowsしか対応していないorz
USBドライバ(無償)
http://k-tai.sharp.co.jp/support/a/is...
- 動作環境、OS:Microsoft® Windows® XP(32bit)/ Windows Vista® (32bit/64bit)/ Windows® 7 (32bit/64bit)の各日本語版
かわりに、Linux側でデバイスを手動で認識させる。
viでudev情報を書き換え:
$ vi /etc/udev/rules.d/51-android.rules
書き込む内容は,下記のURLを参照。コピペして保存する。
その後、root権限で下記のコマンドを実行し、デバイスの認識情報を新たにした上でadbを起動させる。
$ udevadm control --reload-rules $ ./adb kill-server $ ./adb start-server * daemon not running. starting it now
ここで、USB設定済みのAndroidスマホ端末を、USBケーブルで挿す。
しばらくしてから・・・
$ ./adb devices List of devices attached SSHFC〜〜〜〜 device
これで、USB経由で,Android実機がLinuxに認識された。
Anroid SDK and ADB with CentOS 5 and USB Solution
http://www.tekops.com/sub/index.php?o...
- The android developer site (I'm prevented from posting thier URL) tells you how to do it for ubuntu and nothing else. Here's how to do it for CentOS 5:
Simplified instructions for installing the Linux Integration Components into Hyper-V virtual machines
http://social.technet.microsoft.com/F...
- udevcontrol does not exist here so use "udevadm control --reload-rules"
rhel5 does not have udevadm, use udevcontrol (#876286) - Fedora SCM commits - ArchiveOrange
http://web.archiveorange.com/archive/...
Eclipseを再度起動する。
先ほど作ったプロジェクトを選択し、実行>実行>Androidアプリケーション とすると、
AVD仮想マシンの上に、実機がちゃんと表示されている。
選択してOKすると、実機上でちゃんとHello,Worldが表示される。
メーカ製のドライバを使わなくても、Linux上のEclipseから、実機端末でAndroidアプリケーションを起動することができた。
USB-RH で遊ぶ - daily dayflower
http://d.hatena.ne.jp/dayflower/20090...
- いまどきの Linux では udevd という daemon がデバイスノードの生成・削除を引き受け,その「ルール」は /etc/udev/ 以下の設定ファイルに書いてある
- RHEL / CentOS だと,/etc/udev/rules.d/50-udev.rules にデバイスノード生成時などのルールが書いてある
Manpage for udevcontrol - man.cx manual pages
http://man.cx/udevcontrol(8)
- udevd − event managing daemon
- udevd listens to kernel uevents. For every event, udevd executes matching instructions specified in udev rules.
- On startup the content of the directory /lib/udev/devices is copied to /dev. If kernel modules specify static device nodes, these nodes are created even wihtout a corresponding kernel device, to allow on−demand loading of kernel modules. Matching permissions specified in udev rules are applied to these static device nodes.
- The behavior of the running daemon can be changed with udevadm control.
openSUSE 12.3: 第12章 udev による動的なカーネルデバイス管理
http://opensuse-man-ja.berlios.de/ope...
- Linux上でのデバイスの扱いについて、よく読んでおくと良いページ。
- 「デバイスが追加されたり削除されたりするたびに、カーネルは udev に対して変更を通知するため uevent を送信します。 udev デーモンは、起動時に /etc/udev/rules.d/*.rules ファイルから提供される全てのルールを読み込んで処理し、メモリ内に記憶します。 ルールファイルを変更したり追加または削除したりした場合は、 udevadm control reload_rules コマンドを利用して、 デーモンに対してメモリ内の記憶を読み込み直すように指定することができます。 」
udev - Fukudat.com
http://www.fukudat.com/wiki/ja/udev
補足
全体の流れの参考:
Android入門: Androidの開発環境を作成する。(Linux/Windows対応版): hichonのBlog
http://hichon.cocolog-nifty.com/blog/...
- Linuxの場合とWindowsの場合のインストール方法を並行して記述
Android SDK のインストール (Linux) - Android 開発入門
http://android.keicode.com/devenv/ins...
SIOS "OSSよろず" ブログ出張所: LinuxにAndroid開発環境を構築してみよう
http://sios-oss.blogspot.jp/2012/10/l...
関連エントリー:
今から1時間で,64ビットWindows 7上にAndroid開発環境を構築し,サンプルを動作させる手順 (※4.x系のSDKを使用)
http://language-and-engineering.hatenablog.jp/entry/20121017/AdnroidDevelopme...
Androidアプリ開発作業時に,頻繁に参照するサイトのリンク集
http://language-and-engineering.hatenablog.jp/entry/20121116/AndroidAppsDevel...