Blog
-
HomebrewでSHA1 mismatchとか出た時の対処法を要点だけ
HomebrewでPython3を入れようとした時にpkg-configがSHA1 errorというのを吐いてうまくインストールできないという現象に遭遇した。
エラーメッセージにはCache配下の該当ファイルを消せとあったので、消して何度か試したけれど同じ結果だった。結果、以下の操作で解消。brew update
manページによるとhomebrewそのものの最新バージョンをとってくるとのこと。 -
Firefox OSのwebタイプのアプリのインストールについて要点だけ
前回の記事でwebタイプのFirefox OSアプリのlaunch_path(要するにindex.htmlとか起動ページ)以外はどこにインストールされるのかが謎だったんだけど、どうやらmanifestのappcache_path要素を使ってcache manifestを指定してあげれば良いみたい(cache manifestはWeb standardな仕様に準拠)。
そうすると、インストール時にAppCache manifestがパースされて、CACHEヘッダで指定されている静的要素がキャッシュされる。つまり静的要素だけのオフラインアプリであれば、全ての要素をキャッシュさせてしまえば良さそう。
なにも指定されていないときにwebタイプのアプリがどのような挙動をするかは、またはキャッシュされたアプリの更新がどのような挙動をするかは未検証。
App Manifest: https://developer.mozilla.org/en-US/docs/Web/Apps/Manifest?redirectlocale=en-US&redirectslug=Apps%2FManifest
よく見たらこのブログにもAppCacheに関するポストがありました。おしまい
-
Firefox OSアプリについて調べた要点だけ
Firefox OSについて調べた所まで整理します。開発的には単なるWebアプリと考えて、デバイス用APIあたりだけをチェックすれば良いのかも。
-
Initializrガイドの日本語訳
HTML5 Boilerplateについて調べていたらInitializrガイドのドキュメントを見つけたので、翻訳をしてみました。翻訳はこちら(http://blog.imho.jp/p/blog-page.html)。翻訳におかしい箇所等あればご指摘ください。
-
ADT Toolsのthe file dx.jar was not loaded from the SDK folderというエラーの対処の要点だけ
Android SDK Toolsをrev.21にアップデートしたら、アプリのビルドが出来なくなった。
-
Automatorでapkファイルを右クリックからインストールさせる方法の要点だけ
OSXでAutomatorを使うと、apkファイルを右クリックで直接インストールできることが判った。以下やり方です。
- Automatorを開く。
- 「新規」で「サービス」を作成
間違ったらファイル>変換…をすればOK。 - 「アクション>ユーティリティ>Run Shell Script」を右ペインにドラッグ
- 「入力の引き渡し方法」を「引数として」に変更
これでファイルのパスが$@に入ってくる。 - スクリプトを入力。PATH_TO_ADBは環境に合わせてフルパスを書きます。
- ワークフロー最初の「”サービス”は、次の選択項目を受け取ります」の部分を「ファイルまたはフォルダ」に変更
- 適当なファイル名で保存
とりあえず以上でAutomatorでサービスの作成は終わり。スクリプトはAppleScriptで好きなGUIを付けたりしたほうが良いと思う。次は作成したサービスを右クリックに関連づける。- Finder>サービス>サービス環境設定…
「システム環境設定>キーボード>キーボードショートカット>サービス」が開きます。なんでキーボードなんだろ。 - サービスの「ファイルとフォルダ」というグループの中に、さきほど保存したサービスの名前が出てくるので、チェックを入れる。
以上で、Finderからファイルを右クリックするとapkファイルを直接インストールすることができます。これは色々応用できそう。 -
Unity Android Java Pluginの作り方についての要点だけ
UnityでJavaを使ったAndroidプラグインの作り方について、いまいちまとまった情報がないので、要点のみまとめ。あとで追記とかはするかもしれない。
とりあえず2つのケースを想定すれば良いと思う。- Androidとは関係なく単純にJavaクラスをUnityスクリプトから利用したい場合
例えば何かのパーサだったりとか、手持ちの便利ライブラリがJavaであるとか。これはAssets/Plugins/Androidに該当の.jarファイルを置けばOK(.dexでなく.classで良い)。その上で、Assets/Pluginsとかに置いたスクリプトから、new AndroidJavaClass(“Javaクラス名”)とかnew AndroidJavaObject(“Javaクラス名”)とかすればOK。それぞれJavaのクラス型およびインスタンス型に対応し、そこからメソッドを呼ぶ事ができる。(詳細はUnityのリファレンスを見ると良い。インスタンス変数、メンバ変数の取得、クラスメソッド、インスタンスメソッドなど行うことができる)
- Pluginを通じてAndroid OSの機能を利用する場合
Android OSの色んな機能を使うときにはContextオブジェクトを使う訳だけど、これはUnityアプリの場合、ランタイムであるUnityPlayerActivityが持っていることになるので、まずはプラグインのJavaクラスをUnityPlayerActivityを継承したActivityにする必要がある。class MyUnityPlayerActivity extends UnityPlayerAcitvityこんな感じ。
この中のメソッドは普通のAndroidJavaクラスとして作れば良い。その上で、Unityアプリの起動クラスをこのUnityPlayerActivityを継承したMyUnityPlayerActivityにする必要がある。これはAndroidManifest.xmlファイルのカスタマイズのやり方を使う。つまり.jarファイルと同様に、Assets/Plugins/Androidのフォルダに、MyUnityPlayerActivityクラスを起動Activityに設定したAndroidManifest.xmlファイルを置く。そうするとAndroidバイナリのビルド時にこちらを使うようになってくれる。ちなみにUnityのPlayer Settingsで設定したアプリアイコンを使うには、android:iconを@drawable/app_iconに変更する必要があることに注意。
尚、このAndroidManifest.xmlを置き換えるやり方は独自のpermissionやActivityを追加したりするときにも使う。
あとは1と同様にAndroidJavaClassおよびAndroidObjectを利用してプラグインを利用するスクリプトを書けば良い。独自の注意として、Activityは直接newできないのでMyUnityPlayerActivityにpublic static な MyUnityPlayerActivityを変数として持っておいて(onCreate時にMyUnityPlayerActivity.instance = thisとかやる)、そのうえでUnityスクリプト側からaAndroidJavaClass.GetStatic<AndroidJavaObject>(“instance”)みたいにすればActivityインスタンスを直接取ることができる。
尚、Unity 3.5を前提に書いています。もし間違い等あれば指摘してください。 - Androidとは関係なく単純にJavaクラスをUnityスクリプトから利用したい場合
-
OSXのFinderで隠しファイル表示の切り替え方の要点だけ
設定項目では無理そうなので、ターミナルを起動して、以下のスクリプトを実行する。コピペしてEnterすればOKです。