2014年2月2日日曜日

Windows7へのmemcachedのインストール

  1. Window用のインストールパッケージの入手以前は公式サイトにあったが、
    2014年1月現在なくなっているのでどこかから入手してくる。
    2014年1月現在入手できる元↓

  2. 管理者権限でコマンドプロンプトを起動
    管理者権限というのが超重要。管理者権限じゃないとインストールできない

  3. memcachedをインストールしたフォルダに移動

  4. インストール

    memcached.exe -d install

  5. サービス開始

    memcached.exe -d start

2013年11月19日火曜日

AndroidのapkのAndroidManifestを編集してリコンパイルする方法





前提

どこかしらから入手したapkがあるとする。
android sdkのplatform-toolsにpathを通してある。

  1. apktoolから以下の2つのファイルをダウンロードしてくる。
    ・apktool1.5.2.tar.bz2(2013/11/19時点)
    ・apktool-install-linux-r05-ibot.tar.bz2(2013/11/19時点)

  2. 2つのファイルを解凍する。
    $bzip2 -dc apktool1.5.2.tar.bz2 | tar xvf -
    $bzip2 -dc apktool-install-linux-r05-ibot.tar.bz2 | tar xvf -

    それぞれディレクトリ構成は、


    ・apktool
    /apktool1.5.2/apktool.jar

    apktool-install-linux-r05-ibot
    /apktool-install-linux-r05-ibot/aapt
    /apktool-install-linux-r05-ibot/apktool

  3. apktool.jarapktoolを同一ディレクトリに格納。
    ついでにapktoolを分かりやすいようにapktool.shとかにrenameしておく。
    ここでは、ディレクトリを/home/xxx/apktool/とする。

    /home/xxx/apktool/apktool.jar

    ・/home/xxx/apktool/apktool.sh

  4. apkをデコンパイルする
    上記のディレクトリにapkをおいて以下のコマンドを実行

    $./apktool.sh d old.apk

    するてと apkがデコンパイルされ、old ディレクトリが作成される。

  5. AndroidManifest.xmlを修正する。
    old ディレクトリの中にある
    AndroidManifest.xmlを思うがままに修正する。


  6. コンパイルする
    以下のコマンドを実行


    $./apktool.sh b old new.apk

    するてと new.apk が作成される。


  7. apkに署名する
    署名に必要な非公開鍵の生成と管理を行うにはkeytoolが必要。

    keytoolを使ったキーストアファイル(.keystore)の作成と非公開鍵(=キー)の生成の仕方は省略。
    知りたい方はこちらのページへ。

    ってことで、.keystoreを使って以下のコマンドで署名を行う。

    jarsigner -sigalg SHA1withDSA -digestalg SHA1 -verbose -signedjar <署名後のapk名> -keystore <キーストアファイルへのパス> 
    <署名前のapk名> <キーストアのalias>

    するてと、無事署名されたapkが出来上がる。

  8. おわり

2013年9月18日水曜日

AndroidでWeb Browserで開いているWebページからアプリのインストール状態によってアプリもしくわGooglePlayを開く


1.とりあえず飛ばしちゃう手法

参照元

何やっているかというと、とりあえずアプリに飛ばしちゃってみて、
アプリがインストールされていなかったら、すぐ戻ってくるので、
ある一定時間以内に戻ってきたらGoogle Playに飛ばしちゃうっていう手法。


上2つは、document.locationにアプリURI設定して、ページを遷移させている。
下2つは、iframeのsrc属性にアプリURI設定して、ページを遷移させるのは回避している。

2. anchorのhref属性にAndroid Intentを設定する方法

AndroidのChromeが、vesrion25以降で、
iframeのsrc属性のURIからアプリを起動することができなくなったことにより、
上記のiframeを使った手法が、使えなくなったので、
Google Developersのページで紹介されている手法。

https://developers.google.com/chrome/mobile/docs/intents

何やっているかというと、下記3つを使って、

host: アプリ名など
scheme: お好きにどうぞ
package: アプリのpackage名

anchorのhref属性に、

<a href="intent://[host]#intent; scheme=[scheme];@package="[package];end" 説明文 </a>

と設定してあげると、よしなにやってくれる。


ただし、1. 2. ともにBrowserによって対応可否があるので、
まじめにやるならUAなどをみて使い分ける必要がある。

Browser毎の対応状況↓

1.とりあえず飛ばしちゃう手法

アプリインストール済みアプリ未インストール
Android標準Browserアプリ起動GooglePlay起動
ChromeGooglePlay起動GooglePlay起動
Firefoxアプリ起動GooglePlay起動
Operaアプリ起動GooglePlay起動

2. anchorのhref属性にAndroid Intentを設定する方法

アプリインストール済みアプリ未インストール
Android標準Browserアプリ起動GooglePlay起動
Chromeアプリ起動GooglePlay起動
Firefoxページ読み込みエラーページ読み込みエラー
Operaアプリ起動ページ読み込みエラー


2013年9月17日火曜日

Canvasのwidthとheight

Canvasのwidth属性とheight属性は明示的に値を指定しないと、
defaultで、それぞれwidthが300pxでheightが150pxになる。