カテゴリー別アーカイブ: Uncategorized

Android Studio 3.1でNDKを使うまで

Android Studio 2.1で開発したNDKを利用したアプリを、Android Studio 3.1に移植するまでの流れをまとめました。環境はUbuntu 18.04を想定。

準備編

  • udevルールを追加する
$ cat /etc/udev/rules.d/51-android.rules
SUBSYSTEM=="usb", ATTR{idVendor}=="0fce", MODE="0666", GROUP="plugdev"
$ sudo service udev reload
  • 32bit依存関係をインストールする
$ sudo apt-get install libz1:i386 libncurses5:i386 libbz2-1.0:i386 libstdc++6:i386

インストール編

  • Android Studio 3.1.4をダウンロードする
  • ZIPを展開する
  • binにパスを通す
  • studio.shを起動する
  • Android Studioのインストールを行う
  • インストール後、起動画面でConfigure->SDK Managerを選択する
  • CMake, LLDB, NDKを選択してインストールする

プロジェクト作成編

  • 新しいプロジェクトを作る
    • Include C++ supportにチェックを付ける
  • ソースファイルを配置する
    • app/src/main/java に Javaソースコードを置く
    • app/src/main/cpp に C/C++ ソースコードを置く
  • File->New->Folder->Assets Folder
    • app/src/main/assets にアセットを置く
  • app/src/main/resにリソースを配置する
  • AndroidManifest.xmlを既存のものに置き換える(activityを記述する)
  • CMakeLists.txtにライブラリのソースコードの名前を全部書く
add_library( # Sets the name of the library.
             suika

             # Sets the library as a shared library.
             SHARED

             # Provides a relative path to your source file(s).
             src/main/cpp/cmd_bg.c
             src/main/cpp/cmd_bgm.c
             src/main/cpp/cmd_ch.c )
  • 利用しているライブラリがあれば、CMakeLists.txtのtarget_link_librariesに追加する
target_link_libraries( # Specifies the target library.
                       suika
                       jnigraphics

                       # Links the target library to the log library
                       # included in the NDK.
                       ${log-lib} )
  • 下記のエラーメッセージが出る
Failed to find Build Tools revision 27.0.3
  • “Install Build Tools 27.0.3 and sync project”のリンクをクリックすると解決できる

以上

Ubuntu 16.04のGNOME3+CompizでNautilusの周りに黒いフレームができる問題

ニッチな話題ではありますが、Ubuntu16.04において、GNOME3 FlashbackをCompizで利用すると、NautilusのようなHead Barと呼ばれるらしいウィンドウの周りに、黒いフレームがついてしまいます。

さっとググったところ、~/.config/gtk-3.0/gtk.cssに下記のような感じで加えれば大丈夫そうです。

.window-frame.solid-csd {
  box-shadow: none;
  border-radius: 0;
  margin: 1px;
  background-color: #eee;
}

ちなみに私はリサイズのしやすさを考慮して、marginを5pxにして使ってます。また、background-colorはテーマに合わせて調整することになると思います。

Ubuntu 16.04でATOK X3を使う

Ubuntu 16.04でATOK X3を利用する方法を紹介します。デスクトップ環境は、gnome-session-flashbackで確認しています。(2016/5/16 検証済み)。

Ubuntu 18.04版はこちらです。

インストールと調整に1時間ほどかかるかもしれませんが、快適な日本語入力環境が手に入ります。コメント欄で出来る限りサポートしてみたいと思いますので、お気軽に書き込んでいただければ幸いです。

さて、やり方ですが、基本的には、下記の素晴らしいリンク先サイトの記事に沿って、最後までインストールを進めます。なお、途中で再起動やログアウトをしないでください。変更点を適用してから再起動してください。

そのあと、いくつか変更点がありますので修正していきます。

変更点1.

このままだとNetworkManagerがDHCPを取得できないという奇妙な問題が生じます。この問題を解消するためには、上記手順でのインストール後に、下記の操作を行います。(この通りに打ってください。sudo -sは重要で、アレンジするとたぶん失敗します。)

sudo -s
mkdir /run/iiim
rm -rf /var/run
ln -s /run /var/run

この問題の原因は、Ubuntuでは/var/runが/runへのシンボリックリンクであるのに対し、ATOK X3のインストーラがtarでこれを上書きして/var/runディレクトリを作成してしまうことで、不整合が生じることです。

確認した範囲では、Ubuntu 14.04.4, 15.04, 15.10のすべてで同じ問題が生じました。/var/runがシンボリックリンクになったのは11.10からだそうですが、DHCPの問題が生じるようになった時期は、ちょっと不明です。

変更点2.

GNOME3のロケールを日本語にしてください。私はこれでハマりました。

「System Settings→Language Support→Language for menus and windows」で「日本語」をドラッグアンドドロップし、一番上にします。ここを日本語にしておかないと、ウィンドウの左下に表示されるATOKという文字が、[No IM connected]と表示されてしまい、ATOKを利用できません。設定変更にはログアウトが必要になります。

「日本語」をドラッグアンドドロップするとLanguage Selectorがエラーを吐く現象に遭遇しました。対処方法は残念ながら見つかりませんでしたが、Ubuntuの再インストールで解決しました。

変更点3.

リンク先サイトの最初に書かれているim-switchのインストールですが、「im-configが代わりに提供されているよ」というメッセージが出るだけで、インストールできません。これは問題ありませんが、代わりに、次の通りに~/.xinputrcを作成します。

export XMODIFIERS=@im=iiimx
export GTK_IM_MODULE=iiim
export QT_IM_MODULE=xim

iiimx -iiimd

変更点4.

リンク先サイトで作成している~/.config/autostart/atok.desktopは、変更点3.を行ったため、不要になります。作成すると挙動がおかしくなりますので、削除して下さい。

ここまでの変更点を一気に修正したら、再起動してください。うまくいかなければ1つずつ見直し・やり直ししてみて下さい。(私もだいたい2回目くらいでうまくいきます。)

以上、ご参考になりましたら幸いです。また、ご質問・ご指摘等がございましたらコメントをよろしくお願いいたします。

How to apply Clearlooks-Phenix to window title bars on Ubuntu 15.10 and 16.04

(For Clearlooks-Phenix users)

On Ubuntu 15.10 and 16.04, gnome-tweak-tool doesn’t provide the item for window theme selection.  Alternatively, you can apply Clearlooks-Phenix theme to window title bars in GNOME3 flashback sessions (for both metacity and compiz) by typing:

$ gsettings set org.gnome.metacity theme Clearlooks-Phenix

ERLite-3 USB Stick Replacement

After running Debian for two years, the USB stick of my ERLite-3 finally broke with many write errors.

ERLite-3 has compatibility problem on the USB port. Very few USB sticks are available on it. I found some articles and they all say “Sandisk Cruzer Fit” works well.

I had bought a 16GB model on Amazon… and… YES! It worked!! I should buy some spares!

FYI: Gentoo people says that sectors before 2048 contain something, but I could simply fdisk, mkfs and cp to recover the system.

Don’t forget to keep the half of disk empty.  That’s for “overprovisioning”.  You can create empty partition.  And never touch the partition.

Ubuntu 14.04 の GNOME Terminal でフォントを設定する

Ubuntu 15.04だと直っているが、14.04のGNOME Terminalではフォントの一覧で選べない(出てこない)フォントがある。その場合は、次のコマンドで対処できる。

gconftool-2 --set /apps/gnome-terminal/profiles/Default/font --type string 'Font Name 12'

Font Nameの部分はフォント名に書き換えて、12の部分に好きなサイズを指定する。

GNOME3 flashbackの環境設定

Ubuntu 14.04, 15.04にて、GNOME3のflashbackモードを、なるべくGNOME2風に使うための設定。

Clearlooksのインストール

まずはこれがないと!

sudo apt-get install clearlooks-phenix-theme gnome-tweak-tool

インストール後、gnome-tweak-toolを起動して、Clearlooksを選択して下さい。

ウィンドウのボタンを右側に寄せる

まあ、慣れの問題なんでしょうけど、カスタマイズできるものならやってしまいましょう。

gsettings set org.gnome.desktop.wm.preferences button-layout '"menu:minimize,maximize,close"'

スクロールバーを普通のものに戻す

フローティングなスクロールバーじゃ落ち着かないですもの。

gsettings set com.canonical.desktop.interface scrollbar-mode normal

GNOME Terminalのカーソル点滅

GNOME Terminalのカーソルはデフォルトでは点滅しますが、これを無効にすることができます。

Ubuntu 14.04

Ubuntu 14.04のGNOME Terminalでは、古いgconfが使われていますので、下記のコマンドを利用します。

gconftool-2 --set /apps/gnome-terminal/profiles/Default/cursor_blink_mode --type string off

Defaultは、別なプロファイル名に置き換えても大丈夫です。gconf-editorのGUIで眺めてみるのもいいかもしれません。

Ubuntu 15.04

Ubuntu 15.04のGNOME Terminalでは、設定管理に新しいgsettingsが使われているほか、GNOMEシステム全体のカーソル点滅設定を参照するようです。下記のコマンドを利用します。

gsettings set org.gnome.desktop.interface cursor-blink false

gconf? dconf? gsettings?

このようにgconfからgsettingsに移行したようですが、RedHatの資料を見る限り、次のような関係のようです。

gconf (旧) ←→ gsettings (新)
gsettings (インタフェース) → dconf (バックエンド)