タグ

javaに関するnharukiのブックマーク (82)

  • JDK7正式版の新機能一覧(Java言語仕様に関して) - R42日記

    2011-08-02追記 JDK7に致命的なバグ 重要なので先頭に追記しておきますが、JDK7のホットスポットコンパイラに致命的なバグが存在するそうです。 詳しくはコチラ。 http://d.hatena.ne.jp/takahashikzn/20110802 JDK7を使用する際はご注意下さい。 (Javadocのスタイルもガラっと変わりました!!) http://www.oracle.com/technetwork/java/javase/jdk7-relnotes-418459.html JDK7の正式版がリリースされています。 興味深い機能やAPIなどが追加されているわけですが、 その中でもみんな一番気になるところである、Java言語仕様の変更についてご紹介。 あとは、個人的にjava.lang.invokeなんてアヤシゲなパッケージが気になっているのですが… APIを見る限り、動

    JDK7正式版の新機能一覧(Java言語仕様に関して) - R42日記
    nharuki
    nharuki 2011/08/31
  • 汝の隣人のブログを愛せよ | LOVELOG

    au one netのブログサービス 『LOVELOG』は2014年6月30日をもちまして提供を終了致しました。 永らくのご利用、誠にありがとうございました。 引き続きau one netをご愛顧いただきますよう、よろしくお願い申し上げます。 ※お手数ではございますが、新ブログにて閲覧の皆さま向けにブログURL変更等をご周知いただけますよう、お願い申し上げます。

    nharuki
    nharuki 2011/06/22
    APTを使ったクラスの自動生成
  • throw Life - Androidアプリのバグ報告システムを考える

    JavaにはNullPointerExceptionなどのcatchしなくてもclass load validationを素通りできる例外があります。 バグの多くはそういった例外を考慮しないことのようです。 なので、今回はそういった例外の「IndexOutOfBoundsException」を発生させます。 ボタンをタップすると例外が発生します。 oobBtn.setOnClickListener(new View.OnClickListener(){ public void onClick(View v) { int index = 5; String[] strs = new String[index]; String str = strs[index];//ここでIndexOutOfBoundsException }});

    nharuki
    nharuki 2011/06/21
    GAE と連携して外部に物理的なリソースを持たずに実現している辺りが巧い…
  • Androidでの動的クラス - ,

    SDカードにファイルでクラスを定義する方法です。とりあえずエミュレータで動きました。 まず読み込まれるクラスを含む(ダミーの)アプリケーションを作ります。 そのファイルを/sdcardなどにおきます。(adb pushなど) その後別のアプリを作って以下のように書きます。 ClassLoader cl = new DexClassLoader("/sdcard/cl/Hello-debug.apk", "/sdcard/cl", (String)null, ClassLoader.getSystemClassLoader());; //この例では/sdcard/clにHello-debug.dexが作成されます。 Class cla = cl.loadClass("sample.hello.HelloA"); //クラス名を指定してロード System.out.println("Class

    Androidでの動的クラス - ,
  • PHP « BEAR Blog

  • KMC Staff Blog:AndroidでのJavaプログラムの起動やZygoteまわりのメモ

    2011年03月03日 AndroidでのJavaプログラムの起動やZygoteまわりのメモ 以前調べたことをもう一度掘り起こしてみました。 Zygoteの簡単な説明 Androidではアプリケーションや多くのその他のプログラムはJavaで記述されています。これらのプログラムはDalvikVMの上で動きます。 それらのJavaのプログラムを起動するたびにDalvikVMを起動するのではなく、Zygoteと呼ばれるDalvikVMの大元のプロセスに要求を出すと、そのプロセスがforkシステムコールを使って自分自身のコピーの子プロセスを生成し、その子プロセスで指定されたJavaのプログラムを実行するようになっています。 Zygoteは通常必要となる全てのダイナミックリンクライブラリとJavaのクラスライブラリをロードした状態で待機しています。子プロセスはそれをコピーした状態から開始されるので起

  • 「Hudson」改め「Jenkins」で始めるCI(継続的インテグレーション)入門

    「Hudson」改め「Jenkins」で始めるCI(継続的インテグレーション)入門:ユカイ、ツーカイ、カイハツ環境!(21)(1/4 ページ) CIツール「Hudson」改め「Jenkins」とは 「Jenkins」とは、CI(継続的インテグレーション)ツールとして有名な「Hudson」の開発者たちにより開発されているCIツールです。Hudsonは商標上などの問題によりJenkinsと名前を変えて継続することが発表されたので、記憶に残っている方も多いと思います。現在では落ち着いて開発されているようです。 稿では、今話題のJenkinsの使い方を紹介します。記事の想定読者は、Java開発を行っている方で、「今までCIを導入していなかったけどこれから導入しよう」「Jenkins(Hudson)は使えそうだけど、難しそうだなぁ」と思っている方を対象としています。稿を読めば、10分程度でJe

    「Hudson」改め「Jenkins」で始めるCI(継続的インテグレーション)入門
  • LGPLとAndroid - pekeqのブログ

    続編書きました → http://d.hatena.ne.jp/pekeq/20110201/p1 問題なのは、LGPLなライブラリの.jarを、Androidの.apkに組み込んで配布したらそのソフトのライセンスはどうなるのか、ということ。 結論があるわけではないのだが、メモ程度で。 Wikipediaから Wikipedia語版にはLGPLについてこうある。 LGPLライセンスで配布されたライブラリAについて、 コンパイル時にライブラリAにリンクされる可能性のあるプログラムBのソースコードについてはLGPLを適用せず、配布に制限を加えない。 ライブラリAにリンクしたプログラムBを配布する場合、Bのライセンスにリバースエンジニアリングを禁止する条項を含めてはならない。(LGPLv2-6、LGPLv3-4) ライブラリAに静的リンクしたプログラムBを配布する場合、Bのソースコードまたは

    LGPLとAndroid - pekeqのブログ
  • visible true : ANRはどこでやってるか? WindowManagerServiceだ!

    2010年07月15日12:15 カテゴリAndroidメモ ANRはどこでやってるか? WindowManagerServiceだ! Androidと言えばANR。 Application Not Responding 何度泣かされたかわからない。 ・Activity-UIスレッドで5秒 ・BroadcastReceiver-onReceive内で10秒 ・Service-onStartとかonStartCommand内で10秒 厳しいですね。 さらにBroadcastReceiverなんかonReceiveに渡すIntentの中にでっかいParcelableとか詰めてしまうとonReceiveがコールされる前にANRで死にます。 データサイズによっては問答無用で死。困ります。 基的にANRを避けるにはAsyncTaskなどを使ってマルチスレッドで重い処理やるのが定番。 ただAsync

  • 【Google App Engine】 Shin1Ogawa Nightから高速化テクまで

    普通にできることを何でこんなに苦労せにゃならんのか、制約がきつすぎるんじゃボケ~、とかいいながら、毎日毎日GAEの問題にへこまされて、ああ、とっても憂な気分。今日はGAE Nightだけど、正直、GAEのことなんか考えたくないなあ。雨も降っているし。まあ、あれだね。GAEを使うヤシは、はっきりいってバカだね。みんな、Googleに騙されていることに早く気づこうよ。 でも今日はshin1ogawa ja nightだし、teradaは楽しみにしているし、まあいいか、みたいな感じで出席。このやる気のなさが最近の私である。 魔法使い~shin1ogawa mavenを使った開発(gaejsimplequickstart)が便利そうなのと、面倒に思えるtestが意外と簡単に行えるということがわかったのは収穫だった。 しかし、ライブコーディングをあんなに完璧にやってこなせるshin1ogawaはは

  • アノテーションプロセッサ(apt)をAndroidプロジェクトに適用する - Kazzz's diary

    アノテーションプロセッサを実装するための"Pluggable Annotation Processing API"はJava6から実装された機能であり、残念ながらAndroidプラットホームでは使えない。がしかしEclipse自体はJava6で動作しており、プラグイン、コンパイラ等は全てJava6上で動作しているため、以下の条件を満たせばAndroidプロジェクトに対してアノテーションプロセッサを適用することが可能である。 Androidのクラス群にアクセスしない(Dalvikランタイムにアクセスしない) これだけだ。Annotation Processorの起動は適切な設定を行うことでEclipseがやってくれる。(プラグインorg.eclipse.jdt.apt.pluggable.coreが担当する) アノテーションプロセッサを実装するための"Pluggable Annotation

    アノテーションプロセッサ(apt)をAndroidプロジェクトに適用する - Kazzz's diary
  • 「Java SE 6完全攻略」第94回 アノテーションを処理する その1

    あけましておめでとうございます。今年もJava技術最前線ではJavaの新しい技術を取りあげていく所存ですので,よろしくお願いします。 さて,新年はじめてのJava技術最前線で取りあげるのはアノテーションです。 えっ,アノテーションってJava 2 SE 5.0の機能ではなかったっけ,と思う人も多いはず。確かに,アノテーションはJ2SE 5.0で取り入れられた機能ですが,Java SE 6ではアノテーションを処理するための新しい機能が取り入れられたのです。 J2SE 5.0では,アノテーションを処理するため,次の3つの方法がありました。 Javadoc apt (Annotation Processing Tool) リフレクション この中で最も使用されていたのが,aptです。しかし,aptはあくまでも非標準のツールでした。 アノテーションはJSR 175で仕様が策定されましたが,JSR 1

    「Java SE 6完全攻略」第94回 アノテーションを処理する その1
    nharuki
    nharuki 2011/01/16
    昨日のGAE/J勉強会で、APTの自作法が気になって
  • Androidアプリの間違った作り方 - たていすのメモ2

    とある外注さんが書いてきたコードがひどかった。 バックグラウンドでのオーディオ再生を、Activityから作成したワーカースレッドで行う。キャンセル処理は全く考慮していない。 UIスレッド上でばんばんHTTPリクエストを投げる。応答を読み終わるまでループを回す。 アプリケーションの起動中にずっと保持する必要のある情報をIntentに書く。それを読むのはonStart()ではなくonCreate()。 Activityの初期化は全部onCreate()に書く。onStart()もonStop()も全く使ってない。 アプリケーションの起動中にずっと保持する必要のある情報をstaticメンバに持たせる。 どう悪いか説明しておこう。 Activityから起動されるワーカースレッドの寿命 たとえば画面上で表示する情報をHTTPリクエストで取得する等の処理はワーカスレッドを使うと応答性を失わずに欠くこ

    Androidアプリの間違った作り方 - たていすのメモ2
    nharuki
    nharuki 2010/11/11
    数種類あるデータ保持方法が参考になった
  • アプリの基礎  |  Android Developers

    最新の Android UI に対する最新の宣言型アプローチと手軽な Kotlin を使って、少ないコードでアプリをすぐに動かすことができます。

    アプリの基礎  |  Android Developers
    nharuki
    nharuki 2010/11/11
    Androidアプリ開発者が一番初めに読んでおくべき公式ドキュメント
  • Java 1.5 を Ubuntu 10.04 にインストールするには - Windows Live

    Android 2.2 のレポジトリを手元にひっぱてくるために Ubuntu 10.04 の環境を VMWare Workstation 上に構築してるんですが、必須コンポーネントの Java 1.5 が apt-get で「見つかりません」といわれる仕打ち。 Google 様にお伺いをたててみたところ、そのものずばりのブログエントリーを発見。 How to install Sun Java 1.5 on Ubuntu 10.04 とりあえず、/etc/apt/sources.list に以下の二行を追加して apt-get update すればちゃんと引っ張ってきてくれる模様です。 deb http://us.archive.ubuntu.com/ubuntu/ jaunty multiverse deb http://us.archive.ubuntu.com/ubuntu/ jaun

    nharuki
    nharuki 2010/09/23
    10.04でAndroid 2.1(Eclair)をビルドするのに必要
  • Android NDKを使用してJava言語とC言語で速度比較をする | Techfirm Android Lab

    今回はAndroid NDKを使用して、JavaコードとC言語で記述されたNativeコードで速度の比較を行おうと思います。 まずはNDKをインストールします。以下のリンクからndkをダウンロードします。 http://developer.android.com/intl/ja/sdk/ndk/1.6_r1/index.html ダウンロードしてきたら以下を実行しインストールします。 $(NDKROOT)/build/host-setup.sh これでインストールが完了です。簡単ですね。 早速、Javaのコードを書いて速度比較していきましょう。 今回は簡単に1億回足し算を行い、JavaとNativeで比較してみます。 public class JniTest extends Activity { @Override public void onCreate(Bundle savedI

  • Ubuntu 10.04にsun-java6-jdkをインストール - Syo-Takasakiの日記

    Ubuntuを10.04にしたのですが、 $ sudo apt-get install sun-java6-jdk パッケージリストを読み込んでいます... 完了 依存関係ツリーを作成しています 状態情報を読み取っています... 完了 パッケージ sun-java6-jdk はデータベースには存在しますが、利用できません。 おそらく、そのパッケージが見つからないか、もう古くなっているか、 あるいは別のソースからのみしか利用できないという状況が考えられます E: パッケージ sun-java6-jdk にはインストール候補がありません え!? ちょっ!? 何事!? java6で探してみるも…… $ apt-cache search java6 default-jdk - Standard Java or Java compatible Development Kit default-jre

    Ubuntu 10.04にsun-java6-jdkをインストール - Syo-Takasakiの日記
  • [Android] Android.mkでapkファイルを作ってみる - Project Hews by 木南英夫

    Androidのソースツリー内のツールを使って、SDKで配布するapkパッケージを作ってみる。 まずは、サンプルのHelloActivityを参考に、Android.mkを作成する。 $ pwd /home/kinami/mydroid/development/samples $ mkdir HelloAndroid $ cd HelloAndroid/ $ activitycreator jp.hews.hello.HelloAndroid Package: jp.hews.hello Output directory: /home/kinami/mydroid/development/samples/HelloAndroid Activity name: HelloAndroid ... $ cp ../HelloActivity/Android.mk . $ vi Android.m

    [Android] Android.mkでapkファイルを作ってみる - Project Hews by 木南英夫
  • Android NDK の使用とapkファイルへの入れ方 – 記録

    Android NDK r4bを使っていろいろやってみてたのでちょっとまとめ。 (以下の内容はubuntu 10.04で使用した上で書いています。Macwindows(cygwinが必要)だとちょっと違いがあるかも) 自分の理解では、Android NDKはネイティブ層アプリやライブラリのビルドを必要ソースのみで楽にビルドするためのツールです。 NDKを使わない場合ネイティブソースのビルドは、Androidのソースをgitで拾ってきてその中でmmコマンドなどを使ってビルドするのですが、NDKがあれば単体でビルドできます。 基的使い方は、java層からJNIを使用した時に呼ばれるネイティブ層のライブラリを作るときに使用するもののようです。 単体ビルド 単体でビルドする場合、 ~/project/jni/ というディレクトリを作成し、Android.mkとビルド対象ソースをここに配置。 N

  • Android Developers Blog: Securing Android LVL Applications

    [Updated June 23, 2016 - edit made to the "Make your application tamper-resistant" code snippet] [This post is by Trevor Johns, who's a Developer Programs Engineer working on Android. — Tim Bray] The Android Market licensing service is a powerful tool for protecting your applications against unauthorized use. The License Verification Library (LVL) is a key component. A determined attacker who’s wi

    Android Developers Blog: Securing Android LVL Applications
    nharuki
    nharuki 2010/09/02
    Androidアプリのリバースエンジニアリング防止、正当性保証と耐タンパ性のサポートなどなど