manywaypark's Blog
개발, 검색, 함수

금번에 구입한 극강(13.3 inch, 1650*2200)의 Ebook Reader인 Boox Max Carta를 보조 모니터로 활용하기 위해서 약간의 삽질을 했다.


구성 방법은 이렇다.

  1. xwindow에서 모종의 가상 데스크탑(vnc server)을 만들고 VNC viewer가 그 데스크탑에 접속.
  2. x2x를 활용해서 마우스나 키보드 입력을 가상데스크탑이 받을 수 있게한다.


안드로이드 기기 설정

일단 태블릿/폰에는 VNC Viewer만 있으면 되므로 플레이스토어에서 찾아서 설치한다 (bVNC를 추천한다).


Ubuntu 호스트 설정

$ sudo apt install vnc4server x2x

$ vnc4server -geometry 1650x220

......

...... desktop is foo:2   # (여기 2가 VNC port 번호다. 일반적 VNC 시작포트 5900에 더해서 쓴다 여기서는 5902가 된다)

......

$ x2x -west -to :2        # 보조모니터를 왼쪽에 둔다 (즉 현재 xwindow의 왼쪽으로 마우스 포인터가 벗어나면 보조모니터로 설정된 쪽으로 키보드/마우스 입력이 간다)


접속

안드로이드에서 VNC Viewer를 실행한 후에 접속 정보 설정(현재 예제의 경우 Ubuntu 호스트 아이피 번호와 포트번호 5902를 입력)하고 접속하면 xwindow가 뜨는 것을 확인할 수 있다.


(아무것도 없는 빈 화면에 X자 마우스포인터만 있다고해서 당황하지 않는다. 아래의 설정을 하면 제법 볼만해 진다).


window manager등 초기 설정

~/.vnc/xstartup 파일을 아래 두 가지 중 하나로 생성하면 된다.


gnome desktop 비슷한 설정

!/bin/sh

export XKL_SMODMAP_DISABLE=1

# Uncomment the following two lines for normal desktop:

unset SESSION_MANAGER

unset DBUS_SESSION_BUS_ADDRESS


[ -x /etc/vnc/xstartup ] && exec /etc/vnc/xstartup

[ -r $HOME/.Xresources ] && xrdb $HOME/.Xresources

xsetroot -solid grey

vncconfig -iconic &


gnome-panel &

gnome-settings-daemon &

metacity &

nautilus &

gnome-terminal &


좀 가볍다고 알려진 xfce4 설정:

#!/bin/sh

unset SESSION_MANAGER

unset DBUS_SESSION_BUS_ADDRESS

startxfce4 &


[ -x /etc/vnc/xstartup ] && exec /etc/vnc/xstartup

[ -r $HOME/.Xresources ] && xrdb $HOME/.Xresources

xsetroot -solid grey

vncconfig -iconic &


파일 생성 후에 다시 접속하면 제법 쓸만한 환경이 되어있다.


refs:

https://askubuntu.com/questions/28608/how-do-you-use-an-android-tablet-as-a-second-display -> vnc4server, x2x 사용

http://www.whatwant.com/839 -> 전반적 VNC 사용

https://askubuntu.com/questions/57129/how-do-i-start-the-gui-window-manager-over-vnc -> xstartup 파일을 xfce4로 설정하기


2017-08-14 추가: 내 경우 xfce4를 사용할 때 tab key가 안먹는 경우가 발생해서 당혹스러웠는데 여기(http://blog.zerosum42.com/2011/10/tech-fixing-tab-key-in-vnc.html) 참조하면 해결된다. 간단히 요약하자면 xface4-settingings-manager 실행 후 Window Manager > Keyboard에서 "Switch window for same application" 선택 후 "Clear" 버튼 눌러주거나 아래 명령을 명령행에서 실행하면 된다.

xfconf-query -c xfce4-keyboard-shortcuts -p /xfwm4/custom/'<'Super'>'Tab -r


happy hackin'

android source(framework) browsing

mobile/Android 2013. 6. 20. 23:48 by manywaypark

안드로이드 프로그래밍을 하다가 소스를 따라 들어가다 보면 프레임웍단으로 넘어가면 소스 코드를 볼 수 없어서 좀 불편할 때가 있다.

예전에는 직접 소스를 다운로드받고, android.jar를 core쪽 소스 폴더에 연결해주는 등 번거로운 작업이 필요했으나, 간단히 플러그인을 깔아서 해결하는 방법을 얼마전에 발견했다.

update site: http://adt-addons.googlecode.com/svn/trunk/source/com.android.ide.eclipse.source.update/

설치 후에는 지원되는 level의 api를 사용하는 android project에서는 framework의 코드를 추적할 수 있다 (project refresh 필요).


ref:

https://code.google.com/p/adt-addons/

http://www.mkyong.com/android/attach-android-source-code-to-eclipse-ide/ (잘 안될 경우 참고)

Android 개발하기

카테고리 없음 2013. 5. 18. 21:49 by manywaypark

일단 준비하고:
https://source.android.com/source/initializing.html

준비 중에 좀 설정이 필요한 Sun(Oracle) JDK:
http://ubuntuguide.net/install-oracle-java-jdk-6-7-8-in-ubuntu-13-04

이클립스에서 개발하기:
http://source.android.com/source/using-eclipse.html

happy hackin'


ps. 이건 Android Platform 개발에 관한 것임. 일반적인 앱 개발은 그냥 eclipse + ADT 로 하면 된다.

문제:

Android SDK Manager에서 이것저것 업그레이드 후에 eclipse에서 프로젝트 빌드시에 아래와 같은 메시지가 나오면서 패키지 빌드가 실패했다 (물론 그전엔 잘 되는 것이었다).

Unable to build: the file dx.jar was not loaded from the SDK folder!

해결:

dx.jar가 없다는 말인데... dx.jar를 찾아서 있어야할 곳(platform-tools\lib\)에 복사해주면 해결되는데,

현재 참조 링크의 두번째에 나오는 방법이 더 편하고 깔끔하다.

eclipse 종료후에 Android SDK Manager에서 다음 항목을 uninstall한 후에 다시 install하면 해결된다.

Android SDK platform-tools

refs:

 http://stackoverflow.com/questions/5228453/android-adt-error-dx-jar-was-not-loaded-from-the-sdk-folder


happy hackin'

[bugfix] ADT/unterminated entity ref

mobile/Android 2012. 11. 28. 19:13 by manywaypark

문제:

Description Resource Path Location Type

Error: unterminated entity ref icon.png /app_name/res/drawable-hdpi line 7 Android AAPT Problem


해결:

http://code.google.com/p/android/issues/detail?id=39213


그런데 해결 하려면, Android를 빌드해야한다는...

아래 참고 해서 Android SDK 빌드하고, eclipse 관련 도구(플러그인)들을 빌드하고 설치하면 된다.

(지금 소스 다운 받는 중이라 결과는 확인 못했지만, 결과 확인되면 패치된 jar를 첨부할 예정).


refs:

http://androiddevnotes.com/2010/11/22/1290402300000.html

http://tornorbye.blogspot.kr/2010/11/building-android-ide-tools.html

http://source.android.com/source/downloading.html

http://tools.android.com/build

http://tools.android.com/build/eclipse


happy hackin'

2012-12-01: 첨부에 패치된 sdk_common.jar를 추가했다. eclipse 설치 디렉토리의 하위에서 파일을 찾아서 교체하면 이 문제는 해결된다. 참고로, 빌드는 darwin-x86(Mac OSX) host용인데, 아마도 platform independent할 것으로 예상한다.

그냥 casting하면 된다.

Bitmap bitmap = ((BitmapDrawable)d).getBitmap();


refs:

http://stackoverflow.com/questions/3035692/how-to-convert-a-drawable-to-a-bitmap

http://sdw8001.tistory.com/21 -> bitmap, canvas, drawable 개념


happy hacking'

아래와 같은 메시지가 나오면서 빌드가 안되는 경우가 있다.

com.android.sdklib.build.ApkCreationException: Debug Certificate expired on ...

메시지를 보면 인증서 기한 문제인데, debug용 key는 없으면 자동으로 생성되므로 지워주면 된다.

rm ~/.android/debug.keystore

ref:

http://stackoverflow.com/questions/3814503/ant-rules-r3-xml-error


happy hackin'

기초:
기본적으로 /systemro(read-only)로 mount되므로 rw로 mount하기 위해 다시 마운트한다.
adb remount

문제:
adb push/system의 하위에 파일을 쓰려고 하면 다음과 같은 에러가 나면서 안된다.
error msg:
failed to copy 'foo.bar' to '/system/foo.bar': Out of memory


해결:
[Android SDK 설치 디렉토리]/platforms/android-[#target]/images/system.img 파일을 avd image가 있는 곳으로 복사한다.
보통은 ~(home)/.android/avd/[avd이름.avd] 아래에 있다.
또한 emulator 실행시에 system, data용으로 파티션을 잡아준다 (파티션을 안잡아도 상기 에러가 나는 것같다).
$ ./emulator -avd Android2.2 -partition-size 96

원인은 아마도 기본 SDK 설치 디렉토리의 이미지들은 변경이 불가한듯하다 (생각해보면 뭐 당연한 디자인이다).
난 AVD 생성시 모든 시스템이 통째로 다 생기는 줄 알고 있어서 한참을 헤맸던 것이다. Orz.

ref: http://forum.xda-developers.com/archive/index.php/t-880831.html

happy hackin'
 
1 
분류 전체보기 (306)
잡담 (20)
함수형 언어 (65)
emacs (16)
java (18)
tips & tricks (154)
사랑 (1)
가사 (0)
독서 (4)
mobile (6)
비함수형 언어 (2)

공지사항

최근에 올라온 글

최근에 달린 댓글

최근에 받은 트랙백

04-30 18:51