いままでスマートフォンを避けて来たのだけれど、IS03の発売を記念してAndoroid Programmingを始めてみようと思う。
Androidの開発者向けの情報はAndroid Developersにあります。幸いな事に一部の情報は日本語で提供されているので、あまり躓かずにスタートできると思います。
まずは開発環境の構築です。
Android用のアプリケーションは原則としてJavaで開発します。そのためにJDKの5.0または6.0が必要です。OracleのJavaホームページからJDKをダウンロードします。ここではJava SE JDK 6 Update 22を使う事にします。インストーラをダウンロードしたら、jdk-6u22-windows-i586.exeを実行しWizardに従ってインストールしていきます。
Android用の等号開発環境には原則としてEclipseを使います。ダウンロードサイトには様々な開発言語に合わせたパッケージが用意されていますが、あまりオオーバースペックなパッケージをダウンロードすると重たさに苦鳴をあげることになります。ここは無難にEclipse IDE for Java Developersあたりにしておきます。EclipseのインストールはダウンロードしたZIPファイルをインストール先のフォルダに解答するだけです。解凍後にEclipse.exeを起動すると開発環境が立ち上がります。
続いてAndroid SDKをインストールします。Android SDK ダウンロードページからWindows用のZIPファイルをダウンロードします。ダウンロードしたZIPファイルをSDKのインストール先フォルダに解凍し、SDK Manager.exeを実行します。あとはWizardにしたがってインストールするだけです。
最後にEclipseにAndroid用のプラグインをインストールします。Eclipseを起動してメニューの”Help->Install New Software”を選択して、表示されたダイアログの”Work With”にプラグインのダウンロード元URLとして”https://dl-ssl.google.com/android/eclipse/”を入力すると、名前にインストールするプラグインが表示されます。表示されたプラグインにチェックを付けたら、ウィザードに従って次に進めていってください。
Pluginのインストールが終わったら、Eclipseを再起動してください。Eclipseのメニューの”Window->Setting”を選び設定画面を開きます。Androidという項目が増えているので、Android SDKのインストール先フォルダを指定して適用します。
以上で開発環境の準備は完了です。
カテゴリー: Software
感染した未知のコンピュータウィルスを削除するには・・・実践編2/2
続いてレジストリの確認を取ります。実践編1/2でウィルスが起動しないようにしたあと、for VirusCheck OSを起動して、レジストリエディタから全レジストリの内容をエクスポートします。エクスポートしたレジストリはテキストファイルイン保存されますので、for Refrence OSのウィルス感染前のレジストリをエクスポートしたものと比較して変更箇所を検証していきます。
実際に細かく追っていくとかなり根気のいる作業です。今回のウィルスでは以下の場所に改変がくわえられ、ログオン時にウィルスが起動されるようになっていました。
“Userinit”=”C:¥¥WINDOWS¥¥system32¥¥userinit.exe,C:¥¥Program Files¥¥Common Files¥¥svchost.exe -s”
今回のウィルスは比較的シンプルな作りになっていたので、ファイル1つ、レジストリ1箇所だけで済んでいます。etcやDNSサーバの情報を改ざんしたり、電子証明書を改ざんしたり、ドライバを組み込んだり、ブラウザやエクスプローラーにプラグインを組み込んだりと、複雑な動作をするウィルスもいます。気を抜かずに根気よく一つ一つ確認していく事が重要です。
ウィルスを駆除する為に削除するファイルやレジストリが明確になったら、実際に感染した環境でそれらのファイルを削除したり、あるいはレジストリを修復していく事になります。ウィルスが常駐している状態では削除などの操作はウィルスによってトラップされており、おこなえないのが常です。OSのモジュールの一部が置き換えられている場合には、たとえセーフモードで起動したとしてもウィルスは常駐してしまいます。KNOPPIXなどのCDからブートするLinux環境から、NTFSのファイルシステムをマウントして、ファイルの削除などをおこなうのが一番確実でしょう。
今回のウィルスは幸いな事に、セーフモードのコマンドプロンプトで起動すれば、ウィルスが常駐する事を防げます。したがってセーフモードのコマンドプロンプトで起動した後、C:¥Program Files¥Common Files¥svchost.exeのシステム属性と非表示属性を解除し、ファイルを削除することで除去できました。
Failed to create database ‘DevelopmentStorageDb20090919’
Windows Azureのアプリケーションをデバッグ実行しようとすると次のメッセージが表示される。
「Windows Azure Tools: Failed to initialize the Development Storage service. Unable to start Development Storage. Failed to start Development Storage: the SQL Server instance ‘localhostSQLExpress’ could not be found. Please configure the SQL Server instance for Development Storage using the ‘DSInit’ utility in the Windows Azure SDK.」
ローカルにインストーすしているSQLServerの接続設定で、リモート接続やWindows認証を無効にしている場合には、これを有効にしてからやり直す必要があります。また使用するSQL ServerがSQLEXPRESS以外の名称の場合にはC:\Program Files\Windows Azure SDK1.1\bin\devstore\DSInit.exeを実行して手動でAzure Data Storageの初期化をおこなう必要があります。
ですが手順に従って「DSInit.exe /SQLInstance:サービス名」としても以下のメッセージが表示される場合があります。
「Failed to create database ‘DevelopmentStorageDb20090919’ : SQL Server への接続を確立しているときにネットワーク関連またはインスタンス固有のエラーが発生しました。サーバーが見つからないかアクセスできません。インスタンス名が正しいこと、および SQL Server がリモート接続を許可するように構成されていることを確認してください。 」
この場合には「DSInit.exe /SQLInstance:」とSQLInstanceオプションつきでサービス名を指定せずに実行してください。これでAzure Data Storageの初期化を行える場合があります。
どうもSQLServerのインストール後に、OSのコンピューター名などを変更している環境で、上記の問題が発生するようです。
参考:Visual Studio 2010 Problem: Windows Azure Tools: Failed to initialize the Development Storage service.
Error C2872: ‘IServiceProvider’: あいまいなシンボルです。
C++ CLRで記述したアプリケーションからCOMインターフェースを使用しようとすると「C2872: ‘IServiceProvider’: あいまいなシンボルです。」のコンパイルエラーが表示される。これは.NETのSystem.IServiceProviderとシンボルが重複しているのが原因です。
この問題を回避するには”using namespace System”よりも手前にヘッダファイルの#includeを記述します。