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

Rクラスを直接参照せずにリソースを取得する

たまにRクラスを参照せずにリソース(drawable, layout等)を取得したい場合があります。

今まではresource id(例: R.drawable.hogehoge)の値をリフレクションを使って取得するユーティリティーを作ってしのいでいたのですがそんな物を作らなくてもResources.getIdentifier(String, String, String)というそのまんまのメソッドがありました。

ActivityやService内でこんな感じで使えます

int resId = getResources().getIdentifier("hogehoge", "drawable", getPackageName());

コメント

このブログの人気の投稿

Windowsのエクスプローラーがフリーズする現象

ここ数ヶ月の間Windowsのエクスプローラーの調子がおかしかったのでぐぐって直した。

症状
アイコンをダブルクリックしてもエクスプローラーがハングアップする。数分待つと関連付けされたアプリが起動する。アイコンを右クリックするとエクスプローラーがハングアップする。待つとメニューが出る。普通にアプリにドラッグアンドドロップする分にはフリーズしない。
ググッたところ同様に悩んでいる方がいた。
ファイルの起動が遅い

レジストリに存在しないマシンへのファイル共有のリンクがあるとフリーズするらしい。
大体の原因がわかったのでregeditでレジストリをエクスポートしてテキストエディタから「\\\\」(UNCの最初の\\を\でエスケープした文字列)で検索して片っ端からファイル共有へのリンクがないかチェックした。

案の定4,5個ぐらい存在しないマシンの共有ファイルへリンクしていた。やった覚えはないんだけどなぁ。。

当該箇所を削除したところ再起動なしでエクスプローラーがフリーズしなくなりました。
再インストールも考えていたので助かりました。

kickstartで最小限の構成でインストール

最小限の手間でサーバーを配備できるようにしたいのでkickstartインストールをやってみました。 とりあえずの目標としては以下の2点。 最小構成でインストール。必要なdaemonはsshdだけDAGリポジトリからPuppetをインストール。これは次回以降の自動設定の布石 設定ファイルを作った手順は以下のような感じ 実際に手動で最小限の構成でインストールしてみるインストール後に/root/anaconda-ks.cfgを参考に編集。オプションの詳しい説明はRedHatのマニュアルウノウラボさんのblogを参考にした。編集した設定ファイル(ks.cfg)をhttpでアクセスできる場所にアップロード。自分はDropboxのPublic領域にコピー。これで自前のWebサーバーを準備する手間が省けるVMWare Playerで実際にkickstartインストールできるか確認。思ったとおりにいってない箇所があれば2に戻る。 で、できた設定ファイルが以下のようになります。一部()で囲っている部分は適宜置き換えてください。 install url --url http://ftp.iij.ad.jp/pub/linux/centos/5.5/os/i386 lang ja_JP.UTF-8 keyboard jp106 timezone Asia/Tokyo network --device eth0 --bootproto dhcp --hostname (ホスト名) --noipv6 firewall --enabled --port=22:tcp rootpw --iscrypted (暗号化パスワード) authconfig --enableshadow --enablemd5 selinux --permissive bootloader --location=mbr --driveorder=sda clearpart --all --initlabel --drives=sda part /boot --fstype ext3 --size=100 --ondisk=sda part pv.2 --size=0 --grow --ondisk=sda volgroup VolGroup00 pv.2 logvol swap --fstype swap --n…

LinuxのHDDを増設してみた

2TBのHDDがお手軽に買えるようになってきたのでLinuxサーバーのHDDを交換・増設してみた。

変更前の状態は以下の通り
sda: WD10EADS
sdb: WD20EADS sdb1,sdb2にそれぞれ1000GBずつ割り当て
sdc: WD20EADS sdc1,sdc2にそれぞれ1000GBずつ割り当て

今回はsdaを取り外してWD20EARSを2台増設する。
あとRAID化されていない領域をRAID-5化する。
総容量は4TBから6TBになる

WD20EARSは普通のHDDと違って物理セクターサイズが4KiBなのでパーティションを適切に切らないとWriteのパフォーマンスは半減する。この辺は簡単なベンチマークをしたので後述。

結局通常のMBRでなくGPTでパーティションを以下のように切りました

GNU Parted 1.8.1 Using /dev/sdd Welcome to GNU Parted! Type 'help' to view a list of commands. (parted) unit s (parted) p Model: ATA WDC WD20EARS-00M (scsi) Disk /dev/sdd: 3907029167s Sector size (logical/physical): 512B/512B Partition Table: gpt Number Start End Size File system Name Flags 1 40s 1953134487s 1953134448s ext3 primary raid 2 1953134488s 3906268935s 1953134448s primary raid
パーティションはこんな感じで作りました。 mkpart 40 1953…