自作AndroidアプリをIS03で動作させる

自作Androidアプリを実機(IS03)で動作させてみました。


PCとIS03をmicroUSB-USB変換ケーブルで接続するためのドライバを下記URLからダウンロードしてインストールします。
http://k-tai.sharp.co.jp/support/a/is03/download/usb/index.html


次に「Android ADB Interface」デバイスドライバを下記URLからダウンロードしてインストールします。
https://sh-dev.sharp.co.jp/android/modules/driver/index.php?/sharp_adb_all/download


IS03側の設定を以下のように行います(言語設定を英語にしているため、メニュー名が英語になっています)。
[Settings]-[USB connection]-[USB connection mode] で「Fast transfer mode」を選択します。
[Settings]-[Application]-[Unknown sources]をオンにします。
[Settings]-[Application]-[Development]-[USB debugging]をオンにします。


ここでPCとIS03をmicroUSB-USB変換ケーブルで接続します。


PCでIS03を認識していることを確認します。

> cd (android-sdkフォルダ)\platform-tools
> adb devices
List of devices attached

リストに何も表示されていないので認識できていないようです。サーバーを停止してみます。

> adb kill-server
* server not running *

サーバーが開始していませんでした。。サーバーを開始します。

> adb start-server
* daemon not running. starting it now on port 5037 *
* daemon started successfully *

再度確認します。

> adb devices
List of devices attached
XXXXXXXXXXX device

これで認識していることを確認できました。

デバッグを有効にするためにプロジェクトごとに、AndroidManifest.xml の /manifest/application タグに android:debuggable="true" を追加します。

Eclipseで対象プロジェクトを開いて実行させると、無事にIS03上で自作Androidアプリが実行されました。
実機をつないでいると、仮想デバイスより実機が優先されて実行されるようです。

SharePoint 環境で発生する DCOM エラーについて

SharePoint 2007 環境でイベントログにイベント ID:10016 の DCOM に関するエラーが出力されることがあります。


このエラーは、SharePoint 2007 の Web アプリケーションに割り当てているアプリケーションプール ID に対して、CLSID {61738644-F196-11D0-9953-00C04FD919C1} および APPID {61738644-F196-11D0-9953-00C04FD919C1} の COM サーバーアプリケーションに対するローカルアクティブ化のアクセス許可を与えることができないという内容のエラーです。


この現象を解消するためには、以下の手順を実施します。

  1. コンポーネントサービスを起動する。
  2. [コンピュータ] - [マイ コンピュータ] - [DCOM の構成] を開いて、[IIS WAMREG admin Service] を右クリックして、[プロパティ] を選択する。
  3. [セキュリティ] タブを選択する。
  4. [起動とアクティブ化のアクセス許可] の [編集] ボタンをクリックする。
  5. [追加] ボタンからアプリケーションプール ID を追加して、[ローカルからの起動] と [ローカルからのアクティブ化] の2つの許可にチェックをつける。
  6. [OK] ボタンをクリックする。
  7. [OK] ボタンをクリックする。

Windows Server 2008 R2 の場合

Windows Server 2008 R2SharePoint 2007 環境を構築したときにも同様の DCOM エラーが発生したので、上記手順で対応しようとしたところ、[起動とアクティブ化のアクセス許可] の [編集] ボタンが Disable 状態でクリックすることができませんでした。


調べたところ、Microsoft MVP の Wictor Wilén 氏のブログに対応方法が書かれていました。
http://www.wictorwilen.se/Post/Fix-the-SharePoint-DCOM-10016-error-on-Windows-Server-2008-R2.aspx


これによると、レジストリの HKEY_CLASSES_ROOT\AppID\{61738644-F196-11D0-9953-00C04FD919C1} を更新するためのアクセス許可が付与されていないことが原因とのことです。


ということで Administrator ユーザーでレジストリエディタから対象のレジストリキーのアクセス許可を変更しようとしましたが、いざ [適用] ボタンをクリックしてみると「アクセスが拒否されました。」というダイアログが表示されて適用できません。


Wictor Wilén 氏のブログのコメント欄を見てみると、同じように適用できないという人がいて、この場合の対処法が書かれていました。それは適用前にそのレジストリキーの所有者を TrustedInstaller から Administrators に変更するというものでした。


早速、レジストリキーの所有者を変更して、[起動とアクティブ化のアクセス許可] を確認してみると、今度は [編集] ボタンが Enable 状態でクリックできました。そして、アプリケーションプール ID を追加して、[ローカルからの起動] と [ローカルからのアクティブ化] の2つを許可で設定したところ、問題なく設定できました。この状態でイベントログを監視すると、DCOM に関するエラーは出力されないことになりました。


なお、この話は SharePoint 2007 だけでなく、SharePoint 2010 (Windows Server 2008 x64) でも同じです。同様の現象が発生しますが、そのときも同様の方法で対処できます。

Androidアプリ開発環境の構築

Androidアプリ開発環境の構築(Windows XP x86)
1.JDK7(jdk-7-windows-i586.exe) をインストールする。
2.Android SDK(installer_r12-windows.exe) をインストールする。
3.Android SDK の tools フォルダにパスを通す。
4.Eclipse IDE for Java Developers(eclipse-java-indigo-win32.zip) をインストールする。
5.Android Development Tools(ADT)プラグインをインストールする。
   Eclipse で、[Help] - [Install New Software]を選択する。
   Install ダイアログで add ボタンを選択する。
   Name に Android Plugin、Location に https://dl-ssl.google.com/android/eclipse/ を指定。
   Developer Tools が表示されたら、チェックして Next ボタンを選択する。
   どんどん進めてインストール。Eclipse を再起動する。
6.Android SDK を設定する。
   Eclipse で、[Window] - [Preferences]を選択する。
   AndroidSDK Location に Android SDK フォルダの場所を指定する。
7.コンポーネントをダウンロードする。
   Eclipse で、[Window] - [Android SDK and AVD Manager]を選択する。
   Available packages を選択して、対象コンポーネントを表示する。
   今回はIS03(Android 2.1)で動作させたいので、Android 2.1 関連のコンポーネントを選択する。

Zend Framework (1)

Zend Framework は、PHPMVCフレームワーク


例えば、Zend_Controllerを使う場合、
フロントコントローラ(index.php)で受けて、
アクションコントローラ(XxxxController.php)にディスパッチして、
アクション(xxxxAction())はビュー(xxxx.phtml)に表示を依頼する。


フロントコントローラのインスタンスは1つ(シングルトン)。


アクションコントローラでのメソッド実行順は次の通り。
1. init()
2. preDispatch()
3. アクションメソッド
4. postDispatch()

PHPFogを利用する

PHPFogへの登録
まずはPHPFogに登録する。


Gitのインストール
今回は「Full installer for official Git 1.7.4」(Git-1.7.4-preview20110204.exe)をインストールする。


sshキーの作成
GitBashを起動する。

$ ssh-keygen -t rsa -C "(メールアドレス)"
Generating public/private rsa key pair.
Enter file in which to save the key ((パス)/.ssh/id_rsa):

Created directory '(パス)/.ssh'.
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in (パス)/.ssh/id_rsa.

Your public key has been saved in (パス)/.ssh/id_rsa.pub.

The key fingerprint is:

***************************************


GitHubへの登録
GitHubのサイトでFreeのアカウントを登録する。
Account Settings > SSH Public Keys > Add another public key と辿って、
id_rsa.pubの内容をサイトのkeyに貼り付けて「add key」を押す。


sshキーの登録
PHPFogに戻って、sshキーを登録する。


Gitの初期設定
GitBushで最低限の設定を行う。

$ git config --global user.name "(ユーザー名)"
$ git config --global user.email (メールアドレス)


PHPFogのスタート時に用意されているソースコードのコピーを取得する。

$ git clone ***@***


適当にコードを修正して、コミット。

$ git commit

適用。

$ git push

データベーススペシャリスト試験

6/26(日)にデータベーススペシャリスト試験を受験。


育児で時間が取れず、ほとんど準備できなかったのは残念だが、感触はそこそこ。


とはいえ、たとえ合格したとしても、資格は資格でしかない。いつかのネットワークスペシャリスト同様、普段の仕事をするだけでそれなりの知識が自然に身についている、ということは分かったが、ネットワークなりデータベースなりのスペシャリストである、というにはほど遠いと思う。


資格試験は体系的に知識を身につけているかの確認。実務は別物。研鑽あるのみ。


# 2011/08/15 合格でした。

AndroidのインストールとHelloWorld

(前提:OSはWindows、開発環境はEclipse以外)

1.Androidのインストール

  • 任意の場所にダウンロードしたSDKを配置する。
  • システム環境変数のPathに(配置したSDKのパス)\toolsを追加登録する。

2.Androidプロジェクトの作成

  • コマンドラインにて、SDKのtoolsディレクトリに移動。
  • toolsディレクトリ直下にプロジェクト用のディレクトリを作成する。(例:hello)

...\tools> activityCreator.bat --out hello com.example.Hello

 ⇒プロジェクト用ディレクトリに必要なディレクトリ、ファイルが作成され、プロジェクト作成完了。

3.Antのインストール

JDK5 or JDK6(JREのみは×)
http://java.sun.com/j2se/1.5.0/ja/download.html
Apache Ant 1.65 or later for Linux and Mac、1.7 or later for Windows
http://www.jajakarta.org/ant/

新規 ANT_HOME ⇒ (Antのパス)
新規 JAVA_HOME ⇒ (jdkのパス)
編集 Path ⇒ %ANT_HOME%\bin を追加

  • Project\com\example\Hello.javaをちょっと修正

package com.example;

import android.app.Activity;
import android.os.Bundle;
import android.widget.*;

public class Hello extends Activity
{
/** Called with the activity is first created. */
@Override
public void onCreate(Bundle icicle)
{
super.onCreate(icicle);
TextView tv = new TextView(this);
tv.setText("Hello Android");
setContentView(tv);
}
}

> ant

4.実行

  > cd hello
  > emulator &

で、エミュレータ起動

  > adb install bin/Hello.apk

で作成したアプリケーションがエミュレータにインストールされる。

その後、エミュレータのアプリケーション一覧(フォルダのようなアイコン)から、
Helloアプリケーションを選択すると、実行される。