スキップしてメイン コンテンツに移動

投稿

10月, 2012の投稿を表示しています

毎回VirtualBoxへadb connect 192.168...と打つのが面倒なので

ほとんど需要の無い話だと思いますが、以下2点をメモ。VirtualBoxでAndroidのデバッグを行う際にコマンドで毎回、 adb connect 192.168.1.3 のように打ち、VirtualBoxのAndroidと接続するわけですが、これを毎日のように打つのは、さすがに面倒通り越して飽きてくるので、バッチファイルで効率化したいと思います。その前に、 コマンドプロンプトのショートカット 今更メモするような事でもないかも知れません。PATHにadbのディレクトリを通してないので、どこでもadbコマンドが使えるわけではありません。そのため、コマンドプロンプト起動時にadbディレクトリから開始できるようにします。 コマンドプロンプトのショートカットを右クリック > プロパティ で作業フォルダに、 D:\android-sdk\platform-tools のように記述してやります。これで適用ボタンを押せばおk バッチファイル adb connect 192.168.1までは毎回同じなので、テキストエディタで if "%1" == "" goto error adb connect 192.168.1.%1 と記述しました。これをac.batというファイル名で保存し、先ほどのコマンドプロンプトで、IPアドレスが192.168.1.3なら、 ac 3 スペース含め4文字でいけますね。disconnect側もadc.batファイルを作成して接続を解除するようにしました。 理想系は 理想は、VirtualBoxのAndroid起動と同事にコマンド打つことなく接続して欲しいですが... まぁ考えられるところでは、バッチファイルを叩いてもIPアドレス末尾の数字1文字を入力待ちにしておいて、先ほどのコマンドプロンプトショートカットの作業フォルダにコマンドも書き込んでしまえば、 ショートカットをダブルクリック 数字を入力してエンター のステップでいけそうですね。そこまでしなくてもいいかと思って調べるのやめておきました(^^ゞ

トイレを覚えてくれた

子猫が我が家に来てから、トイレを1度もしてなかったので心配だったのと、トイレの躾をつけたいと思っていたのですが、この日ようやくウンチしてくれました。カーペットの上に(#^ω^)ヨシイイコダ それをティッシュでくるみ猫砂の所へ置き、猫を連れて行って匂いを嗅がせ、カーペットは匂いが残らぬよう綺麗に掃除をしておきました。 すると、次回からは自分で猫砂の所へ行って排泄するようになりました。なんて優秀な子なんだ!理想を言えば、カーペットにされる前、催した兆候( 猫が床の匂いをかいでウロウロする)らしきものがあったのを確認していたのですが、その時に連れていくべきでしたね。 これで一安心です。 ただ、 便秘が解消されて元気になってよくエサを食べるようになりましたし、機敏に動くようになったのですが、夜中にじゃれて欲しいのか手を噛んできたり、寝ている僕の胸あたりに乗って猫パンチしたりして、またもや寝不足です....

子猫が我が家に来て一夜明け

ひょんな事から子猫を拾い、 ・とびこみ日記: 子猫を拾った http://www.takaiwa.net/2012/10/blog-post.html 飼うことになったのですが、当初は威嚇していた猫も緊張を和らげてくれた様子なので手のひらを近づけるとじゃれます。ただし、全力で噛みます(#^ω^)イタイヨ 子猫とは言え、歯が鋭利なのか時々指に血がにじむほど。昔、小学生だったか中学生の頃に猫を飼ってた経験から、これはそのうち加減を調節してくれるだろうととりあえず我慢。ググったら痛い!とリアクションするのが良いようですね。 とは言え、日常の生活に猫がいるなどというのは子供の頃ぶりなので、どうしていいか

子猫を拾った

考え事が捗るのでダイエットも兼ねて、小さい山に繋がる道路をよくウォーキングをしています。道路ができたのは、ここ十数年なのでそのせいか、トカゲやカマキリなどといった生物によく出くわし、遅い時間であれば鹿や猪も見たことあるで若干警戒しながら歩いているのですが、この日は茂みの中から何かの鳴き声がしました。 鳥かなにかだろうとスルーして折り返し地点を目指しました。で、折り返してまたここに来ると鳴いています。動かないという事は怪我した鳥なのだろうかと、ちょっと怖い物見たさで近寄ったら...

ArrayAdapterで作ったListViewの行の更新

ArrayAdapterを継承したクラスでListViewを作る場合、些細な事ですが忘れがちなのでメモしておきます。基本的には、行の更新と言えどListViewはsetAdapterメソッドを叩いてやれば、ListViewを更新できますが、画面に収まりきらないほどのリスト項目を持ち、リストをタップする事でリスト項目を更新するような場合は注意が必要です。 具体例で言いうと、下図のような商品名が並んでいるリストがあり、ショッピングカートのボタンをタップすると、商品名の括弧内の数字(個数)が増えるようなアプリがあったとします。この場合は、下から2番目の”味付けカワハギ”までは、setAdapterでリストを更新しても特に問題はないと思いますが、”冷凍シメサバ”より下に項目が続く場合についてサンプルソースを基に注意点を見ていきたいと思います。

AndroidでのXML解析と、Evernote本文のDocumentパースが激重い話

org.w3c.dom.Documentを使う場合 親ノードを辿れたり、タグの属性を指定して更新できたりしてコードがすっきりするのでこのAPIを使いたいわけですが、EvernoteのクラウドAPIで取得したnoteの本文を丸々突っ込むとパースがクソ重いです。コードは以下のようになるかと思います。 String content = "<!DOCTYPE en-note SYSTEM \"http://xml.evernote.com/pub/enml2.dtd\"><en-note><div><p><en-todo checked=\"true\"></en-todo>チェック項目1</p></div><div>ほげほげ</div></en-note>"; InputStream in = new ByteArrayInputStream(content.getBytes()); DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance(); DocumentBuilder builder = factory.newDocumentBuilder(); Document document = builder.parse(in); パースが遅い故、デバッグもし辛いしorg.w3c.domの利用を諦めようとしていましたが、<en-note>~</en-note>を抜き取ったものを使うと劇的に速くなります。理由までは調べてませんが... String contentとInput Streamの宣言の間に以下のように、文字列処理を行うと良いでしょう。 int index = content.indexOf("<en-note"); content = content.substring(index); これで取得したdocumentを NodeList node_list = document.getElementsByTagName(

Android:Documentでparseしたものを文字列に戻したい

エラー java.lang.NoClassDefFoundError: org.apache.xalan.processor.TransformerFactoryImpl 経緯 AndroidでEvernoteのクラウドAPIを使ってノートの本文(XML)を解析するにあたり、調べてみたら、SAXだとかいろいろあるみたいですが、org.w3c.domがノードをたどれるし、今まで使った事のある経験から採用しました。 ※まぁparseが遅いとかいうのもチラっと見かけましたが、次の記事あたりに遅さを解消について書きたいと思います。大したことではありませんが。 で、parseしてデータを取得するまではいいんですけど、これをEvernoteのnoteとして反映させるためには、paerseしたものをまた文字列へ戻す必要があります。ググるとTransformerが使われている例が多かったので、試してみました。Javaで動いてるJUnitで動かしてみたら問題なさそうだったのですが、Androidで動かしたら上記のエラーが出てしまいました。 対応 parseできるなら戻せるようにしておいて欲しい所ですが....どうするかについては単純に3種類くらいでしょうか。 それでもTransformerを使うべくxlan.jarを導入する 他のフレームワークを使う 手動で解析 xalan.jarを入れるが楽ではあるんですけど、 ・Download SoulMUD from SourceForge.net http://sourceforge.net/projects/misterya/files/lib/Required%20libraries/xalan.jar/download?use_mirror=jaist ただでさえ、EvernoteのクラウドAPIとActionbarSherlockの導入で数MBに肥大しているので、たかだか文字列にしたいだけで1.7MB近くあるJARファイルを入れたくないですし、 ・java.lang.NoClassDefFoundError: org/apache/xalan/processor/TransformerFactoryImpl - Simple difficult things in Jav

EclipseのGitのCommitショートカットを有効にする

環境 Eclipse IDE for Java Developers:Helios Service Release 2 Git:上記Eclipseのプリインストール版Egit OS:Windows 7 対応 デフォルトでショートCtrl + #が割り当てられてますが、押した所で有効になってないので、Commitが行えません。 メニューから Window > Customize Perspectiv で表示されるダイアログのCommand Groups AvailabilityタブにあるGitにチェックを付けてOKボタンを押下します。 [参考] ・ Eclipse, Git - Keyboard Shortcut, How to use? - Stack Overflow [PR] ・ アリスとボブのGit入門レッスン ・ Gitポケットリファレンス ・ 入門git

Evernote SDK for Androidを使う時はEclipseのヒープサイズをアップさせた方がよさそう

前回の記事、 ・とびこみ日記: Eclipseが重いのでバージョンダウン http://www.takaiwa.net/2012/10/eclipse.html で、動作は軽くなったものの、デバッグ時がやっぱり重い。特にEvernoteのクラウドAPIを実装したもの場合。実機と接続すると、 Unable to execute dex: Java heap space というダイアログが表示されて、インストールまでたどり付かない。ヒープサイズが問題のようで、ググったら、 ・eclipse起動時に「Unable to execute dex: Java heap space」エラー - ロロロッサ http://d.hatena.ne.jp/zakkiver24+rororossa/20110612/1307888021 にあるように、eclipse.iniのサイズを変更しました。 CPUは貧弱ですが、メモリは無駄に8GB積んでるので大いに使って欲しいのですが、いくらがいいのか特にわからずこんな値にしておきました。 -vmargs -Dosgi.requiredJavaVersion=1.5 -Xms512m -Xmx1536m 以前は、実機デバッグのインストール時に、Eclipseの応答がありませんとか言われるほど動作が重かったのですが、難なく動くようになりました。 [参考] ・ android - Unable to execute dex: Java heap space Java heap space - Stack Overflow [PR] ・ Intel SSD 330 Series Maple Crest 120GB MLC 2.5inch 9.5mm Reseller Box SSDSC2CT120A3K5 ・ Intel CPU Core i7 3770K 3.5GHz 8M LGA1155 Ivy Bridge BX80637I73770K【BOX】 ・ Transcend JetRam ノートPC用増設メモリ PC3-10600(DDR3-1333) 8GB KIT(4GB×2) 永久保証 JM1333KSN-8GK

Eclipseが重いのでバージョンダウン

前回Androidアプリを作った時は、Eclipse IDE for Java DevelopersのIndigoを使っていたのですが、アプリをリリースして、Eclipseがしっちゃかめっちゃかなっているし、何故かハイライト機能が死んでたので現時点で最新のJunoを入れてました。 ところが、これが重い。別にCPUが占有されてるわけではないですが、何をするにも重い。Eclipse内のViewの挙動が変ってるのも使い辛かったのもじきになれるだろうと思ってましたが、重いのだけは勘弁ならなくて、検索したら、 候補にHeliosが出てきたので、バージョンをダウンさせてみることにしました。ちなみに、Eclipse IDE for Java Developersのパッケージ毎のサイズは、 Juno : 150MB Indigo : 128MB Helios : 99MB ダウンロードして、eclipse.exeをダブルクリックすると、まず、起動が速い。Viewもストレスなく移動できる。マシンスペックが上がるまではしばらく使っていきたいと思います。 新規に環境を構築するのが面倒なので、今までJunoで使ってたWorkspaceを利用し、足りないのはAndroid Developer Toolsなのですが、まずEclipse MarketplaceからAndroid Developer Tools for Eclipseをダウンロード。この、Eclipse Marketplace経由からADTをダウンロードすると、どのEclipseでも共通にエミュレータを扱うようなので、今まで設定していたエミュレータもそのまま残っています。なので、以降もすぐでした。 追記:2012/10/19 ヒープサイズを変更するのも重さ解消に繋がりました。 Evernote SDK for Androidを使う時はEclipseのヒープサイズをアップさせた方がよさそう http://www.takaiwa.net/2012/10/evernote-sdk-for-androideclipse.html 追記:2012/12/19 問題点 Heliosのせいかどうかわからないけど、Eclipseがファイルをつかんで離さない事がある。例えば、E

ActionBarSherlockのsample demoを動かすまでにやった試行錯誤

あっちへぶつかりこっちへぶつかりやったので、ベストなやり方ではなないかもしれませんが、次回も試行錯誤しないようにメモしておきます。 プロジェクトのインポート maven projectとしてsamples/demos/のプロジェクトをインポート android-support-v4.jarの削除 前回 もやりましたけど、同様にlibsフォルダのandroid-support-v4.jarを削除 dependency not found in workspace 下記エラーが発生したので、 dependency=[com.actionbarsherlock:library:apklib:4.1.0:compile] not found in workspace こちらから、pom.xmlをコピー ・ActionBarSherlock/library/pom.xml at master · JakeWharton/ActionBarSherlock https://github.com/JakeWharton/ActionBarSherlock/blob/master/library/pom.xml# Project 'sample-demos' is missing required source folder: 'test' このエラーに対して、右クリック Build Path > Configure build PathでSourceタブ内のtestをRemove Conversion to Dalvik format failed with error 1 Androidアプリを起動しようとしてコンソールに表示されるエラー。ググったら ・android - "Conversion to Dalvik format failed with error 1" on external JAR - Stack Overflow http://stackoverflow.com/questions/2680827/conversion-to-dalvik-format-failed-with-error-1-on-external-jar これ

ActionBarSherlockの導入が一筋縄にいかなかったのでメモ

Pattern Calendar を作った時は、このライブラリの存在を知らなかったので、Android 2.xとICSとかと表示が違いなどに困っていましたが、とても有り難いライブラリということで、早速使ってみることにしました。 こちらを参考に ・Android 2.xでAction Barが使えるActionBarSherlockの使い方 - gabuchanの日記 http://d.hatena.ne.jp/gabuchan/20120227/1330302592 Githubはリンク切れてたので、入手先はこちらから ・ActionBarSherlock - Home http://actionbarsherlock.com/index.html @Overrideのエラー まず、ライブラリをAndroid applicationのプロジェクトとして取り込むと、エラーが出ます。 ソース内の@Overrideの所でエラーが出ています。Eclipseの設定を開いて、Java CompilerにJava1.5を使ってるのが問題で、1.6にすれば解決できます。 android-support-v4.jarがかぶる で、先の解説の通り、自分のアプリを import com.actionbarsherlock.app.SherlockActivity; public class MainActivity extends SherlockActivity { @Override public void onCreate(Bundle savedInstanceState) { setTheme(R.style.Theme_Sherlock); super.onCreate(savedInstanceState); setContentView(R.layout.main); } } と修正して、ビルドをかけるとソースに問題がないのにエラーが残ってます。 Jar mismatch! Fix your dependencies HelloActionBar Unknown Android Dependency Problem エ

Evernote SDK for Androidサンプルを自分のプロジェクトで実装する時の注意点

Evernote SDK for AndroidのクラウドAPIサンプルを参考にしながら、自前のプロジェクト上で実装してみた際の注意点というかエラーについてです。今後SDKのバージョンアップがあれば発生しなくなるかと思われますが下記環境に関しては注意が必要です。 環境 Evernote SDK for Android version 0.2.3 Evernote API version 1.22 クラウドAPI エミュレータ Plattform 4.0.3 (VirtualBox上で) 実装 基本的には、こちらの ・evernote/evernote-sdk-android https://github.com/evernote/evernote-sdk-android#include-the-code ”Using the SDK in your app”の項目を参考にすれば良いと思いますが、見落としてました...

Evernote SDK for AndroidのサンプルのOAuthで躓く

環境 Evernote SDK for Android version 0.2.3 HelloEDAM Evernote API version 1.22 エミュレータ Platform 2.3.3 API Level 10 経緯など 昨年くらいに、一度WebアプリケーションとかJavaの環境でEvernote連携を試してみようとして、API Keyを発行してノートの一覧やノートの投稿などやったくらいに触った事あったんですけど、今回Androidで連携してみようと久々に触りました。 Androidでは、以下の2種類の方法でEvernoteのリソースへアクセスできるようです。 Intents クラウドAPI これは Pattern Calendarアプリ の時も、Googleカレンダーで両方使えたんですけどIntentsで実装しました。IntentsはSQLite感覚で使えて楽なんですけど、その分端末内の同期を待たないといけないというデメリットもあり、今回はクラウドAPIを利用してみます。 http://dev.evernote.com/intl/jp/documentation/cloud/ 以前はEvernoteの開発者ページは英語だったような記憶をしていますが、日本語が充実しているのと、わかりやすいデザインになってますね。

Androidエミュレータ爆速環境を試そうとして「XD not supported」

Intelのx86 Emulator Accelerator(XAXM)の存在は知っていて、僕のマシンじゃダメだと知っていたのですが、先ほどタイムラインに流れてきた、 ・【番外編】Androidの爆速エミュレータ環境を構築する | クラスメソッド開発ブログ http://dev.classmethod.jp/smartphone/build-fast-android-emulator/ これは新しいやり方だろうかと試してみたら、Hardware Accelerated Execution Managerのインストールでこけました。 XD not supported This computer does not support Intel Execute Disable Bit(XD) or it is disable int the BIOS. HAXM cannot be installed Please refer to the Intel HAXM documentation for more informaiton. とのこと(´_`;)ヤッパリ まぁ VirtualBoxで爆速環境 は作れたりしますけど、エミュレータで動かしたい。

Eclipseで一通り基本的なGitを使ってみる

備忘録的にまとめておきたいと思います。おかしな点があればご指摘いただければ幸いです。 目次 環境 プロジェクト作成~初コミットまで コミットの履歴&差分を見る 元に戻す ブランチについて ブランチを作成してみる ブランチを統合するには マージする Rebaseする ローカルリポジトリからプロジェクトを取り込む コミットしたメッセージの修正 環境 Eclipse IDE for Java Developers:Juno Service Release 1 Git:上記Eclipseのプリインストール版

WordPressからBloggerへ移行で躓いた点など

経緯 Android アプリ を作った時に、オンライン情報ページを設ける事を考えました。それまで運営していたtakaiwa.netのWordpressのブログにアプリ用ページを作成しても良かったのですが、自宅サーバのため不安定だしスパムコメントやら「wordpressの新しいバージョンが利用できます」などメッセージに対するメンテナンスが煩わしいので、ブログを移転する事にしました。何故Bloggerかというと、今まで使ってて特にクセがなかったといった軽い感じです。 WordpressからブログデータをExport と行きたいころですが、ご丁寧にも未承認のスパムコメントまでエクスポートして、Bloggerに格納してくれるのでまずスパムコメントを消します。Bloggerでやってもいいですが、wordpressで消す方が楽だったように思います。スパムコメントを消し終わったら、[Tools] – [Export]を選択します。All contentsでも良いのですが、次の作業で1MB以内に抑える必要があったので、Postsだけにします。まあ特にPagesは作ってなかったのでExportはしません。 Bloggerへインポート Wordpressほど有名ならインポートも余裕だろwwと思ってたら現実は甘くなくて、そのままだとインポートしてくれません。インポートできる形に変換してやる必要があり、そういうサービスを提供してくださってるありがたいサイトがありました。 ・Wordpress2Blogger conversion utility http://wordpress2blogger.appspot.com/ ここで、ファイルを指定してコンバートボタンを押せばおkです。では、インポートといきたいところですが、画像のURLが http://takaiwa.net/wp-content/uploads~ というドメインのままインポートすることになるわけで、ドメインもそのまま移転させるので画像を別途移動させてやる必要があります。何か良いやり方があればいいのですけど、思いつかなかったのでDropboxの Public フォルダを利用する事にしました。このフォルダだとディレクトリ構造が反映されたURLになります。 2017/03