PDIC for Android 開発メモ

★英辞郎第9版発売中! 2016/6/7発売

一般ページはこちら

リンク

JNI関数一覧

Android NDKで使えない関数一覧

AndroidStudioのテーマサンプル

Androidで動く携帯Javaアプリ作成入門
C++Builder XE7オンラインヘルプ
FMX-VCL-RTL ライブラリリファレンス

ListViewなど

Tutorial - animationは使える(ListViewSample02)
colors.xml - 色の定義ファイル

Blog/記事など

C++Builder関連

EXPERTGIGの社長ブログ

FAQ

Androidプログラム

AndroidStudio

NDK

C++Builder XE7

疑問

Android Studioインストールメモ

Android Studio vs C++Builder XE7

Android StudioとC++Builderの比較(AMD PhenomII X4 945での実測値)

Android Studio C++Builder XE7 Visual Studio 2015
アプリ起動時間
(実機)
5秒 30秒
アプリ起動時間
(Emulator)
15秒 1秒(Win64)
GUI設計 基本XML入力でGUI確認 マウス+keyboardでビジュアル編集
言語 Java C++
対応CPU 全CPU ARMのみ
Package Size
(空アプリ)
7MB: apkサイズ
21MB:.soファイル
200KB: dynamic link
14MB: static link)
開発環境のサイズ 7GB 25GBくらい?(AndroidとWindowsのみ、database、helpなど外して必要最小限に設定)
PDICを開発する場合 Java+JNIが必須
デバッグ難易度が上がる
PDIC移植の開発時間 1〜2年程度? 1年程度?
その他 Android上で逆アセンブルデバッグができる

C++Builder XE7の評価

C++Builder XE7 お試し版にて
・インストールに必要なHDD ・・・ OSX, iOS, CORBAを外して10GB以上(正確には測っていない)
・空のAndroidアプリ起動まで30秒
・空のWin64アプリ起動まで1秒
・Android上で実行中ブレークし、逆アセンブルでステップ実行ができる
・package size - Win64版=200KB(RTL/DLLあり)、Android版=7MB
  →apkファイルの中身を見ると、アプリバイナリファイル(.so)だけで21MB
  →Win64をstatic linkにしたら14MB

問題点
・実行ファイルがでかい。仕方ないが、独自コードを追加しても最終的にサイズはそれほど大きくならないだろう。
・ネット上でC++Builder XEを使っている人をほとんど見かけない=Google先生に頼れない
・付属のヘルプは使い物にならない?

昔から(C++Builder5から)変わらない問題点
・エディターの支援機能が遅くて使い物にならない
・エディターの機能は昔と変わらず、今となっては貧弱
・コンパイルのスレッドは1つしか使っていない
・たまに"Internal compiler error"が出る
・コンパイルを開始したらIDEが落ちることがたまにある

悪くなったところ
・コンパイルでエラーが発生しても発生箇所に自動的にジャンプしない
・プリコンパイルヘッダの保存先が指定できない

Android Studioの困ったところ

C++Builder XE7の困ったところ

ソースコードFAQ

UnicodeStringの定義場所 - include/android/rtl/ustring.h

NDKインストールメモ

NDK開発に必要なもの: Android NDK, cygwin
cygwinインストール時に必要なパッケージ: gcc-core, g++, make

Android StudioでJNI開発する方法 @Android Studio 1.1.0/Windows

こちらがソース

  1. local.propertiesにndk.dir=によるNDKへのパス指定 (ex.K:\wbin\android-ndk-r10d)
  2. JNIのソースコードはapp/src/main/jniに置く(AndroidStudio上でも自動的に認識する)
  3. app/build.gradleに ndk { moduleName "moduleNameHere" } を追加。(正確な追加方法は他のサイトにて)
  4. ここでAndroidStudioのbuildを実行。(エラーが発生するが無視)
  5. app/build/interemediates/ndk/debug/Android.mkのLOCAL_SRC_FILESのパス指定を\→ / に変更 ←Windows固有
  6. ここでndk-buildを実行
    <NDK_DIR>ndk-build.cmd NDK_PROJECT_PATH=null APP_BUILD_SCRIPT=<PROJ_DIR>\app\build\intermediates\ndk\debug\Android.mk APP_PLATFORM=android-21 NDK_OUT=<PROJ_DIR>\app\build\intermediates\ndk\debug\obj NDK_LIBS_OUT=<PROJ_DIR>\app\build\intermediates\ndk\debug\lib APP_STL=gnustl_shared APP_ABI=armeabi,mips,armeabi-v7a,x86 ←Windows固有
  7. app/build/intermediates/ndk/debug/lib以下をapp/src/main/libs以下にコピー ←Windows固有
  8. app/build.gradle に sourceSets { main { jni.srcDirs = [] } } を追加
  9. AndroidStudioでアプリを実行

TODO

・JNI - 最終的にはRegisterNatives()で高速化したほうがいい?→Androidはandroid\serversのregister_android_server_xxx()がある。

スケジュール(常に暫定)

9/M dropboxで辞書ファイル、bookmarkファイルの共有
9/E 全体的にブラッシュアップ - サイドバーの導入、タッチ検索のポップアップ化+リストビュー、エラー処理
10/B 今までテストアプリとして作っていたが、いよいよPDICアプリとして作り直し
10/M α版に向けた改善

開発日記

別ページへ


連絡先: