MN #64 PDFium contd.

04:42

引き続き。どこで諦めるかの引き際も考えないとなあ・・・。

方針を考えようではないか

  • Chromium のビルドシステムを使って  PDFium の API を Java に公開する AAR を作る。大枠では Cronet と同じアプローチ。これが一番「ただしそう」だから。そして巨大プロジェクトをいじるときは corner-cutting しない「正しさ」は割と需要、という自説。ただ複数 CPU アーキテクチャ対応などはいまは考えない。
  • Git repo は PDFium とは別に持つ。PDFium の DEPS をコピーして gclient する。これは概ね Electron がやっている方法。Electron は Chrome まるごとなのに対し自分は PDFium が対象。
  • AAR のビルドに必要な Chrome の依存関係は選択的に clone する。

作業としては

  • PDFium のビルドを再現できるプロジェクトをつくる。
  • PDFium の shared_library をビルドする BUILD.gn を書く
  • AAR をビルドする stub を作る(大変)
  • 何らかの JNI のコードを stub に加える(大変)
  • ビルドした AAR をテストする Android アプリを作る。
  • PDFium をリンクして JNI から呼ぶ。

くらいまで行けば最低限の見通しは立つを言えよう。

やる気を出すために名前も考える: Paperium とする。なぜならフル機能の PDF には興味がなくて論文が読めるくらいでいいからである。