2006/04/27(木) [n年前の日記]
#1 [iappli] とうとう.jarが30Kbyteを超えてしまった
30Kbyte未満に収めないと。
_jarg - Java Archive Grinder
7zipとやらが必要らしいのだが、7za なるものがない。インストール済みのはずだったけど…。と思ったら、 _7zip - Download を見る限り、コマンドライン版を別途落としてこないといけないらしい。
◎ 一応配列をint[]→byte[]にしたら多少は減ってくれるみたい :
ではあるのだけど。その減り方が、単純に int → byte になるわけではないようで。どうにも規則性がわからない。
◎ 変数名を短くしたら減った。 :
そんな。
たしかこのへんは自動化するツールがあったはずだな…。
たしかこのへんは自動化するツールがあったはずだな…。
◎ _アプリ開発メモ - 効果的な圧縮 :
◎ _携帯Javaアプリ最適化 - Wiki :
私の調べたところ、フリーのソフトの組み合わせではproguard、JoGa?、7zipの組み合わせが最も小さくなります。ふむ。
◎ _Java Blender :
Java Blender は i-appli のプログラムを圧縮するツールです。 i-appli にはコードサイズの制限があるため、 名前を 1 文字にしたり、クラスをできるだけ作らないようにして コードサイズを減らそうとしがちですが Java Blender を使うとそのような処理を自動的に行うことができます。 そのためプログラマは普通の Java と同じ感覚で i-appli のプログラムを書けるようになります。ありがたい。素晴らしい。Java Blender より
_jarg - Java Archive Grinder
jargはJavaクラスファイルが格納されているJARファイルのサイズを削減します。 「簡単にサイズ削減できること」が第1目標ですが、jargで処理した結果、 Javaクラスファイルは最適化されるのでより速くなりますし、改名されるのでより解析されにくくなります。 つまり、jargは、'Java Optimizer'であり、'Java Obfuscator'であり、'Java Shrinker'もしくは'Java Reducer'でもあります。ありがたい。ありがたい。…ん? 0.9.14 が最新版らしいのだけど、 _SourceForge の該当ページ には 0.9.13 しかない。うーむ。…と思ったが、files を辿ったら、0.9.14 があった。
最後に、jargは、100% Pure Javaですし、オープンソースですし、無料でご利用いただけます。
7zipとやらが必要らしいのだが、7za なるものがない。インストール済みのはずだったけど…。と思ったら、 _7zip - Download を見る限り、コマンドライン版を別途落としてこないといけないらしい。
◎ 容量削減できた。 :
結構減るな。30K未満に収まった。
が、.jam の AppClass が変な名前に書き換えられてしまう。eclipse で作業しようとしたら動かなくなっていて、ちとハマった。…あ、そうか。名前を短くしていくことで容量削減をしてるから、AppClass も変わってしまうのか。
が、.jam の AppClass が変な名前に書き換えられてしまう。eclipse で作業しようとしたら動かなくなっていて、ちとハマった。…あ、そうか。名前を短くしていくことで容量削減をしてるから、AppClass も変わってしまうのか。
◎ ProGuard + JoGa を使ってみた。 :
_ProGuard
_JoGa
たしかにこっちのほうが減るような。かつ、AppClass を書き換えないような指定もできる。
下のような結果に。
_JoGa
たしかにこっちのほうが減るような。かつ、AppClass を書き換えないような指定もできる。
下のような結果に。
種類 | 結果(byte) |
---|---|
オリジナル | 33,131 |
JavaBlender | 28,681 |
JavaBlender → jarg → 7zip | 26,863 |
ProGuard → JoGa → 7zip | 25,069 |
◎ _shortやbyteは容量が増えやすい :
shortやbyteは容量が増えやすいのです! なぜなら、型変換の命令が追加されるからです。あ、なるほど…。別のところで増えちゃってるから、規則性が見出せないのだな。
[ ツッコむ ]
#2 [prog] _バッチファイルの制御用コマンド
_%0〜%9 について
_Jarg, 7zip による Jar ファイルサイズ削減 で紹介されてるbatファイルの中に、
_Jarg, 7zip による Jar ファイルサイズ削減 で紹介されてるbatファイルの中に、
set TARGET_F=%~f1 set TARGET_P=%~p1 set TARGET_SP=%~sp1 set TARGET_N=%~n1
echo AppSize = %~z1 >> %TARGET_SP%%TARGET_N%.jamという記述があって、これは何だろうと。ということで検索。
WindowsNT/2000/XPでは、次の拡張書式で必要な情報をパラメータ文字列から抽出できます。なるほど。
%~1 引用句 (") があればそれを削除する %~f1 完全修飾パス名を得る %~d1 ドライブ文字を得る %~p1 パス名だけを得る %~n1 ファイル名だけを得る %~x1 拡張子だけを得る %~s1 短い名前を得る %~a1 ファイルの属性を得る %~t1 ファイルのタイムスタンプを得る %~z1 ファイルサイズを得るということらしい。つまり、
set TARGET_F=%~f1 <--- 完全修飾パス名を得る set TARGET_P=%~p1 <--- パス名だけを得る set TARGET_SP=%~sp1 <--- 短い名前のパス名だけを得る set TARGET_N=%~n1 <--- ファイル名だけを得る echo AppSize = %~z1 <--- ファイルサイズを得るということなのか。
◎ rd って何だ? :
と思ったら、rmdir、ディレクトリ削除のコマンドなのか。
[ ツッコむ ]
#3 [iappli] 実機で動いた
なんだか感動。
フォント表示がなんだか変だな…。太字が出ていない。エミュレータ上では表示されているんだけど。機種依存なのかしら。…みたいだ。STYLE_BOLD は端末によってサポートされない場合がある、と基本APIリファレンスに書いてあった。
フォント表示がなんだか変だな…。太字が出ていない。エミュレータ上では表示されているんだけど。機種依存なのかしら。…みたいだ。STYLE_BOLD は端末によってサポートされない場合がある、と基本APIリファレンスに書いてあった。
◎ createImage() で作成した Image に、透過部分を持たせるにはどうしたらいいのだらう。 :
APIリファレンスを眺めたり、検索してみたけれど、それらしい情報は見当たらず。
う。DoJa3.0では無理、という話を見かけた。DoJa 3.5 のオプションAPI(<オプションなので、機種によって持ってたり持ってなかったりする)であれば、TransparentImage なるものがあるらしいが、DoJa 3.0 の基本APIじゃ無理っぽい。
う。DoJa3.0では無理、という話を見かけた。DoJa 3.5 のオプションAPI(<オプションなので、機種によって持ってたり持ってなかったりする)であれば、TransparentImage なるものがあるらしいが、DoJa 3.0 の基本APIじゃ無理っぽい。
[ ツッコむ ]
#4 [digital] 携帯ってすごいことになってるな
iアプリの一覧を眺めていたら、TVリモコンなるものがあった。試しに起動。…うわ。ホントにTVを操作できる。スゲー。赤外線通信機能がついてると、こんなこともできるのか。恐ろしいなぁ(?)。
[ ツッコむ ]
#5 [cg_tools][web][linux] SVG の Mime-Type 問題
_SVG の Mime-Type (1)
_SVG の Mime-Type (2)
自分の日記で .svg を置いても Firefox で表示できないのはコレだった。
_SVG の Mime-Type (2)
自分の日記で .svg を置いても Firefox で表示できないのはコレだった。
◎ _ミケネコの htaccess リファレンス - MIME/ハンドラタイプ :
参考にして、 .htaccess に .svg 用を記述。
AddType image/svg+xml svg
[ ツッコむ ]
#6 [zatta] アニメの質が落ちそうになったら時間を短くする
という案がコメント欄で出ていて、それができたら色々と助かりそうだなと。
と思ったが、TV放映という形態であるかぎり、それは難しいのだろうな。何せ時間を売ることで商売してる世界だし。
と思ったが、TV放映という形態であるかぎり、それは難しいのだろうな。何せ時間を売ることで商売してる世界だし。
[ ツッコむ ]
#7 [cg_tools] _BeatTheGIMP - 自作の GIMP plug-in を配布してるサイト
_もりあげ Plug-in
とか、なんかかなり良さそうですよ! …でも linux 用なのか。
◎ _たむぶん版 continuous-save - GIMP のレイヤーを各画像として保存 :
気になる。メモ。
アルファチャンネルつきのレイヤーについても保存できるのだろうか。たしかオリジナル版はゴミが入ったような。まあ、GIMP 側のバージョンアップで動作が変わってる可能性もあるのか。
アルファチャンネルつきのレイヤーについても保存できるのだろうか。たしかオリジナル版はゴミが入ったような。まあ、GIMP 側のバージョンアップで動作が変わってる可能性もあるのか。
この記事へのツッコミ
[ ツッコミを読む(3) | ツッコむ ]
#8 [cg_tools][iappli] 最近、EDGE というドットエディタを多用してるのだけど
選択範囲を指定した状態で、テキスト情報として x,y,w,h をコピーできるのが便利で。しかし、ショートカットキーが割り当てられてないので、メニューを辿ってコピーしないといけない。かなり面倒。それでも、そういう機能のついてないグラフィックツールより、はるかに便利なのだけど。
複数の矩形・ドット単位の選択範囲を指定して、一覧でコピーできるようなツールはどこかにないものか。いや、コピーじゃなくてテキスト出力できれば…。特殊過ぎるよな。そういう機能って。
複数の矩形・ドット単位の選択範囲を指定して、一覧でコピーできるようなツールはどこかにないものか。いや、コピーじゃなくてテキスト出力できれば…。特殊過ぎるよな。そういう機能って。
◎ 画像の配置もちと面倒。 :
BGの手前に、いくつか小さ目の画像を配置したいなと。が、どこに配置するか、幅や高さはどのくらいかの情報を、テキストとして取り出せないといけない。何かいいツールはないものか。…結局コレも、EDGE を利用してチクチクと一つずつ手作業で。
GIMP のレイヤー位置・サイズ情報を取得することができれば、レイヤーをガンガン作って配置したり等して作業できそうなのだけど。メニューの中 ―― スクリプトやプラグインのメニュー中にも、そういうものはナサゲ。内部で特殊な情報の持ち方をしてるのだろうか。レイヤーの境界があるんだから、情報としては持ってそうなんだけど。
別のツールを探す or 作ったほうが良さそうではあるけど。
GIMP のレイヤー位置・サイズ情報を取得することができれば、レイヤーをガンガン作って配置したり等して作業できそうなのだけど。メニューの中 ―― スクリプトやプラグインのメニュー中にも、そういうものはナサゲ。内部で特殊な情報の持ち方をしてるのだろうか。レイヤーの境界があるんだから、情報としては持ってそうなんだけど。
別のツールを探す or 作ったほうが良さそうではあるけど。
[ ツッコむ ]
#9 [game] _『スーパーマリオブラザーズ』のジャンプについてのメモ
コメント欄で教えてもらったのでメモ。動作サンプルがあって判りやすい。素晴らしいぜ、マリオ!
この記事へのツッコミ
- Re: 『スーパーマリオブラザーズ』のジャンプについてのメモ by Re: 『スーパーマリオブラザーズ』のジャンプについてのメモ 2006/11/09 20:03
- Re: 『スーパーマリオブラザーズ』のジャンプについてのメモ
[ ツッコミを読む(1) | ツッコむ ]
以上、1 日分です。
たむぶん版の continuous-save は保存に関しては、いっちーさんオリジナルの部分
をそのまま使っています。
取り敢えず、gimp 2.2.13でちょっと確認したかぎりでは
pngで保存すればアルファチャンネルがあっても、正しく保存できてるみたいです。
> pngで保存すればアルファチャンネルがあっても、
> 正しく保存できてるみたいです。
わざわざありがとうございます。それは嬉しい話…
と思ったのですが、そちらのスクリプトで動作確認してみた限りでは
やはりゴミが入るようです…。
こちらの環境は、Windows版 GIMP 2.2.13 なのですが、
もしかするとそちらは Linux版だったりするのでしょうか?
だとすれば、Windows版と Linux版で動作が異なるのかもしれませんね…。
そのうち見てみます。