Category Archives: Android

あの日見たLambdaの書き方を僕はまだ知らない

Javaだったから、という理由で選んだ本を買ったまでは良かったんだけど、なんか私の知ってるのと違うだ! なんてことになったんで、読んで調べてみると、これラムダという。 Java8になって、関数型インターフェースはラムダ記法で置き換えることができるようになった。 関数型インターフェースとは定義されている抽象メソッドが1つだけあるインターフェースのこと。 だそうだ。 コードで書くとこんな感じ。 普通に実装するばやい、こんな風になるだ。 ラムダ記法にすると、こんな感じになるだ。 短かっ! そして、さらにこう書けた。 いろいろなサイトを見て回って文章とコードを読んでもいまいちわからなかったんだけど、実際に自分の手と頭を使ってコードを書くと頭に入ってくれるだね。 サンプル 実行結果 ナウい言語はこういう書き方に慣れてないと読みづらいので、練習するだよ。

Androidの開発でC++のコードを使うには

最後の更新からずいぶんと日が空いてしまいました。久しぶりの更新です。 英語のアウトプットの方はMy Teacherが別のところでCheckしてくれることになったので、こっちは昔の感じで再構築していこうかと思います。 やっぱり英語+ITの話題となると、ちょっと敷居も高くなっちゃってなかなか手が動かなかなったんですが、ただの英語の日記だとわりとサクサクと書けますね。それに添削もしてくれるのでやりがいもあると。 閑話休題。 再構築の1発目はAndroid。 Androidでググっていると、ネイティブコードとかいう言葉をよく目にすることがあるかもしれません。 C/C++がそれにあたるそうです。 使い方ですが、Android StudioのSDKツールでLLDB、CMake、NDKという3個のコンポーネントを追加してください。 横着な人はプロジェクト作成のときにこの部分 Include C++ Suportにチェックを入れて作業を進めて行くと、〇〇がないからインストールしなよ! って出て来るので、それで入れて進めても大丈夫です。 さて、MinimumSDKとかどうしよかなーとか悩むとこですが、テストなのでそれは置いておいてドンドン進めて行くと、普段見ないファイルが少し増えているぞと。 cppディレクトリにnative-lib.cpp、External Build FilesにCmakeLists.txt というファイルがあるね。 C/C++を使う方法ですが、ndk-build(古い)を使う方法とCMake(新しい)を使う方法があるようで、今回はCMakeを使う方法です。 これらの具体的な仕組みは分かりませんが、これをつかって規則に沿って進めていけばうまくビルドしてくれるようです。 便利なもんだ。 プロジェクトが出来上がって何も手を加えずにビルドしてみてみると、native-lib.cppにあるString設定されている文字列がディスプレイに表示されていることでしょう。 いつものJavaのMainActivityを見ると というところがあります。nativeで宣言して、下の3行でCを呼んでる感じだね。 C++のコードはnative-lib.cppに書くとよさそうです。 では、ここで積み本になっていた技術評論社:C++クラスと継承完全制覇を取り出してC++のコードを書いてみよう。 と、その前にルールをチェックやで。 native-lib.cpp メソッドはこの形式で、第1引数、第2引数はこれで固定らしい。追加は第3から。 あとはDEMO?というか作りたてのコードにあったようにC++内部ではstd::stringで、返す時にはJstring。 これはStringだけども、このような感じのルールらしい。 プロジェクトを生成してできるコードを見るとそのようになっています。 では技術評論社:C++クラスと継承完全制覇のList1-1のコードから抜き出してビルドします。 こんな感じになっています。 ビルドすると 出たけどちょっと寂しい。 ではこの勢いでC++の勉強をしていこうと思います。 せっかく本買ったしなあ、とけっこう貧乏性なんだな。 参考にしたサイト させす技術メモ(自家用)Android Studio 2.2でC++のコードを使う hcreer’s diary Android Studio NDKを使う