우연히 눌르다가 발견한 방법이다.
일단 쿼티 키보드를 "영문모드"로 꾸~욱 누르고 있거나
화상 키보드를 "영문모드"로 꾸~욱 누르고 있으면 아래와 같은 화면이 뜬다.

여기는 쿼티키보드에서 'a'를 오래 누를경우 뜨게 되는 다국어 입력기

여기는 화상키보드에서 'a'를 오래 누를경우 뜨게 되는 다국어 입력기

Posted by 구차니
LauncherPro는 가장 많이 알려진(?) 런쳐이다.
일단 특이하게도(!) Droid를 위한 셋팅이 존재하는데, 이것의 영향인지 모르겠지만,
모토로라 기본 홈 런쳐와 비교해서 매우 부드럽게 움직인다.
(거의 아이폰3GS 급이라고 하면 뻥이 좀 심하려나?)


필요한 프로그램은 Home Switcher LauncherPro 이며

Home Switcher로 기본 런쳐를 LauncherPro로 변경해주고 리부팅하면
다음부터는 기본적으로 LaucherPro만 구동이 된다.

일단, Homescreen에서 column을 늘려주고(5x4로 늘려줌, 모토로라 기본 런쳐는 4x4 임)
사용하고, Homescreen의 갯수는 3개로 줄여주었다. 기존에 5개였는데 은근히 넓기만 하고 쓸모가 없었다.

Home 키를 눌러 나타내는 "Open/Close screen previews"
Behavior Setting - Home key action 에서 설정한다.

세로 화면과, Drawer(프로그램 목록) 화면, 아이폰 스타일로 애니메이션이 추가된다.


결론 : 아무튼 기본 모토로라 홈 런쳐 보다는 메모리도 적게 먹고,
         애니메이션도 상당히 부드럽게 나오는 것 같다.
         모토쿼티 쓴다면 기본 런쳐 버리고 LaucherPro로 고고싱!
Posted by 구차니
개인적으로 네이트온은 구버전을 사용하고 있다.
일단 UC 버전을 쓴다고 해도 안정적일것 같지는 않고,
용량도 드럽게 많이 잡아 먹는지라 일단 패스하는중

마켓에서 nate로 검색하면 네이트온UC와 네이트온이 뜨는데


네이트온UC는 무려 4.36MB 이고, 네이트온은 740KB 이다.
이런저런 기능도 추가되서 좋다고 할지는 모르겠지만.. 그래도 이건 너무 큰거 아냐?
하나하나 별도로 추가하도록 해놓던가 하는게 좋을거 같기도 한데..

Posted by 구차니
Programming/android2010. 9. 11. 10:22
안드로이드 개발환경(Android SDK / Eclipde ADT)에는 AVD 라는 것이 존재해서
가상 안드로이드 기기를 구동은 할수 있는데 시스템을 구성하는 rootFS가 존재하지 않고 있다.
그래서 디렉토리를 뒤져보다 보니

platforms 아래의 안드로이드 버전별 디렉토리에 images 라는 녀석이 존재하고
리눅스로 옮겨서 파일종류를 보니, 다음과 같은 내용이 나왔다.

$ file *
NOTICE.txt:   ISO-8859 English text
kernel-qemu:  data
ramdisk.img:  gzip compressed data, from Unix
system.img:   VMS Alpha executable
userdata.img: VMS Alpha executable

$ ll -h
합계 84M
drwxr-xr-x 2 morpheuz morpheuz 4.0K 2010-09-11 10:01 ./
drwxr-xr-x 5 morpheuz morpheuz 4.0K 2010-09-11 10:01 ../
-rwxr--r-- 1 morpheuz morpheuz 307K 2010-09-11 01:04 NOTICE.txt*
-rwxr--r-- 1 morpheuz morpheuz 1.4M 2010-09-11 01:04 kernel-qemu*
-rwxr--r-- 1 morpheuz morpheuz 161K 2010-09-11 01:04 ramdisk.img*
-rwxr--r-- 1 morpheuz morpheuz  78M 2010-09-11 01:04 system.img*
-rwxr--r-- 1 morpheuz morpheuz 3.9M 2010-09-11 01:04 userdata.img*

이름이나 사이즈를 봐서는 system.img가 RootFS일 가능성이 높아 보인다.

Android emulator has 3 basic images on tools/lib/images directory.
    * ramdisk.img
    * system.img
    * userdata.img

system.img and userdata.img have the contents of /system and /data directory on root file system.

[링크 : http://wiki.kldp.org/wiki.php/AndroidPortingOnRealTarget]

안드로이드 시스템에서 /system은 퍼미션이 되지만
/data는 안되므로 userdata.img를 분석해 보는게 이득이고, 마운트 해야할 파일의 방향이 잡혔다.

그리고 안드로이드는 YAFFS2를 rootFS용 filesystem으로 사용하기 때문에,
일반 PC에서 이러한 rootFS를 열어보기 위해서는 해당 파일 시스템을 지원하는지 봐야 하는데
리눅스에서 /proc/filesystem에 지원하는 파일 시스템이 목록이 나온다.

$ cat /proc/filesystems
nodev   sysfs
nodev   rootfs
nodev   bdev
nodev   proc
nodev   cgroup
nodev   cpuset
nodev   tmpfs
nodev   devtmpfs
nodev   debugfs
nodev   securityfs
nodev   sockfs
nodev   pipefs
nodev   anon_inodefs
nodev   inotifyfs
nodev   devpts
        ext3
        ext2
        ext4
nodev   ramfs
nodev   hugetlbfs
nodev   ecryptfs
nodev   fuse
        fuseblk
nodev   fusectl
nodev   mqueue
nodev   rpc_pipefs
nodev   nfsd
nodev   binfmt_misc

yaffs2는 없으니 아마도.. 커널을 재 컴파일 하는 무시무시한 작업을 해야 할것 같다.
날려도 되는 시스템이지만.. 재구축하기 귀찮아서 두렵다 -_-

음.. UML(User Mode Linux) 란걸로 대체해서 해볼까? 메인 리눅스 날리면 귀찮은디 ㅠ.ㅠ
[링크 : http://user-mode-linux.sourceforge.net/]

아래는 ubuntu 에서 커널 컴파일을 통한 yaffs2 추가하기
[링크 : http://seulkom.tistory.com/34]

아래는 qemu 라는 것으로 AVD 없이 안드로이드를 구동시킨 화면
[링크 : http://www.kandroid.org/board/board.php?board=androidsource&command=body&no=24]
[링크 : http://cs.sch.ac.kr/cs_homepage/seminar/android/Android.htm]




ramdisk.img는 ramfs 이지만 mount로는 보이지않고 cpio로 원래대로 추출(extract) 시켜주어야 나온다.
$ gzip -cd ramdisk.img > ramdisk
$ cpio -iv -F ramdisk
[링크 : http://wiki.kldp.org/wiki.php/AndroidPortingOnRealTarget]

$ cpio -iv -F ramdisk
data
default.prop
dev
init
init.goldfish.rc
init.rc
proc
sbin
sbin/adbd
sys
system
512 blocks

$ file *
data:              directory
default.prop:      ASCII text
dev:               directory
init:              ELF 32-bit LSB executable, ARM, version 1 (SYSV), statically linked, stripped
init.goldfish.rc:  ASCII English text
init.rc:           ASCII English text
proc:              directory
sbin:              directory
sys:               directory
system:            directory

Posted by 구차니
Programming/android2010. 9. 11. 00:39
이클립스 켜기 귀찮아서 "SDK Setup.exe" 로 그냥 실행했더니


Android SDK Tools, revision 7 이라는 메인 패키지(!)가 다운을 받고

설치를 하려다가 파일을 잡고있다고 해서 설치가 되지 않는다.

머.. 이런 이유로 번거롭더라도 SDK 업데이트를 위해서는
eclipse의 "window - Android SDK and AVD manager" 메뉴에서 실행해서 하도록 하자

'Programming > android' 카테고리의 다른 글

안드로이드 플랫폼 다운로드 / 구축  (2) 2010.09.11
Android RootFS  (2) 2010.09.11
apk - Android PacKage  (3) 2010.09.05
안드로이드에서 apk 빼내기  (0) 2010.09.05
안드로이드 "모의 위치 허용"이 모야?  (0) 2010.09.05
Posted by 구차니
많은 뻘짓을 하게 되었지만 -_-
일단 실행을 하려는 시도는 하는것으로 보인다.
하지만, Dock 프로그램 자체에서 dock있는지를 확인하는 것으로 추측된다.(실행되었다가 바로 사라짐)

am은 안로이드의 프로그램 런쳐인것으로 추측되는데,명령행에서 옵션을 줌으로서 실행이 가능해진다.
(일일이 타이핑 하기 귀찮으니 스샷으로 때우기)

<manifest xmlns:android="http://schemas.android.com/apk/res/android"  package="com.iftitah.android.contact">
  <application android:icon="@drawable/icon">
   <activity class=".Contact" android:label="@string/app_name">
    <intent-filter>
    <action android:value="android.intent.action.MAIN" />
    <category android:value="android.intent.category.LAUNCHER" />
   </intent-filter>
  </activity>
 </application>
.
.
</manifest>

To run the code issue command like this (in one line):
am start -a android.intent.action.MAIN -n com.iftitah.android.contact/
com.iftitah.android.contact.Contact

[링크 : http://learnandroid.blogspot.com/2008/01/run-android-application-from-command.html]

문제는 manifest 파일이 필요하다는 것인데, apk 안에 들은 AndroidManifest.xml 파일은 파이너리로 변경된것으로 보인다.
아직까지 이녀석을 원래 txt로 변경하는 법은 모르겠고, wordpad 에서 대충보니 아래와 같이 모양이 대충보인다.

action 값

package 값

class 값 - 이 넘은 특이하게(?) .DockApp가 아니라 Package.className으로 들어있다.

아무튼, 위의 값들을 조합해서 라인코만도에서 아래와 같이 입력하고 실행하면
 > am start -a android.intent.action.MAIN -n com.motorola.dock/com.motorola.dock.DockApp

줸장! 안되잖아! 으아~!

Posted by 구차니
Programming/android2010. 9. 5. 01:52
SDK를 설치하고, ddms.bat를 실행하면 Dalvik Debug Monitor가 실행되는데

"Device - File Explorer"을 구동하면 별도의 프로그램 설치없이 핸드폰 내부의 내용을 볼수있다.
물론, 프로그램을 받아서 실행해도 권한문제로 볼수 없는 부분이 많고, 디버거에서도 sbin이나 root 등은 보여지지 않는다 -_-

아무튼, /system 에는 안드로이드 시스템의 프로그램들이 설치되는데

/system/bin 에는 파일명들로 봐서는 일반 리눅스 시스템의 /bin과 유사해 보인다.
(그러니까 각종 시스템 실행파일들이 존재한다. 내려가면 ls 라던가 ifconfig 등도 보인다.)

그리고 마켓을 통해 다운받은 프로그램은 인스톨러 버전이고, 이녀석들은 /system/app 에 저장된다. (오홍!)
apk가 유포되는데 아마 이것을 통해서 뺴내는 것으로 생각된다.
(해보지는 않았지만, 유료어플도 이런걸로 빼면 다른 데서 실행이 되려나?)


Posted by 구차니
Programming/android2010. 9. 5. 01:46
안드로이드 폰에서 "설정 - 응용프로그램 - 개발"에 보면 "모의 위치 허용" 이라는 것이 있다.
도대체 머하는 녀석인지 궁금증 발동!



개발 화면
개발 화면에는 Android 애플리케이션 개발에 유용한 설정이 들어 있습니다.
Android API 및 개발 도구에 대한 도움말을 비롯한 자세한 정보는 Android 개발자 웹사이트 (http://developer.android.com) 를 참조하세요 .

USB 디버깅
USB 연결을 통해 컴퓨터의 디버깅 도구가 휴대전화와 통신할 수 있도록 하려면 선택합니다 .

켜진 상태로 유지
휴대전화를 충전기에 연결하거나 전원을 공급하는 USB 장치에 연결했을 때 화면이 흐려지거나 잠기는 것을 방지하려면 선택합니다 . 고정된 이미지가 휴대전화에 장시간 표시된 상태로 이 설정을 사용하지 마세요 . 화면에 해당 이미지의 자국이 남을 수 있습니다 .

모의 위치 허용
휴대전화의 자체 내부 도구를 사용하는 것이 아니라 컴퓨터의 개발 도구가 휴대전화에서 인식하는 위치를 제어할 수 있도록 허용하려면 선택합니다 .

[링크 : www.google.com/googlephone/android-userguide_kr.pdf]

자세한 내용은 모르겠지만, 이걸 확인하면 개발도구에서(SDK) 핸드폰의 위치 정보를 변경이 가능한것으로 보인다.
예를들면, GPS의 값이나 혹은 핸드폰 기지국을 통해 받아오는 위치정보 이런게 변경될듯?


+

2017.01.25

[링크 : https://www.xda-developers.com/fake-android-location/]

[링크 : http://stackoverflow.com/questions/2531317/android-mock-location-on-device]


Posted by 구차니
개인적으로 사용하는 SSH 클라이언트이다.
일단 지원하는 프로토콜은 SSH/Telnet 이며 한글이 안된다고 하는데 한글은 안쓰니 일단 패스 -_-

[링크 : http://code.google.com/p/connectbot/]

아무튼, 이녀석의 도움말은 다음과 같은데...
문제는 타겟이 되는 저 모델(HTC 인거 같긴한데..) 에는 트랙볼이 있지만, 모토쿼티에는 없다는 것.


일단 저 트랙볼로 Ctrl, esc를 제어하는데
모토쿼티의 경우에는 쿼티키보드의 방향키 내의 금색 엔터버튼이 trackball 클릭 역활을 하고
한영 키의 경우 메뉴키의 역활을 한다(즉, 한글로 변환 자체가 불가능하다)
그리고 오른쪽 ALT는 /로 오작동 하므로,

숫자나 특수문자를 입력하려면 왼쪽 ALT를 눌러야 한다.
탭은 오른쪽 ALT + A
ESC는 금색버튼 두번 클릭
ctrl-c는 금색버튼 한번 클릭 + c 이다.
--- 2010.10.30 추가
F1~F10 키는 금색버튼 두번 클릭 + alt + 숫자키 이다.
---




2010/10/30 - [개소리 왈왈/핸드폰(안드로이드)] - connectBot 에서 특수키 누르기
Posted by 구차니
Programming/android2010. 8. 29. 01:49
안드로이드 개발했던 선배에게 물어봤더니(그 선배는 아이퐁 씀 ㅋㅋㅋ)
AVD는 원래 1분 정도 켜지는 시간 걸리고, 안드로이드 폰 있으면
    1. 이클립스에서 AVD 한번만 켜 놓고, 계속 프로그램 전송해서 쓸수 있다는 것과
    2. 안드로이드 폰이 있다면, 이클립스에서 target을 AVD 를 끄고 핸드폰을 직접 선택해서 쓸수 있다는
정보를 입수했다.

Step 1. Run - Run Configureations

Step 2. Android Applicatio - Project name - Target 탭
           여기서 Automatic 에서 체크를 하나도 하지 않으면 된다.

           Manual로 했을 경우에는, Run 버튼을 누르면 아래와 같은 창이 뜨고,
           Choose a running Andoid device 중에 사용할 안드로이드 폰을 설정해주면 된다.
           물론, USB 드라이버 설치 / USB 디버그 모드 사용 / USB로 연결되어 있어야 한다.

아래는 Automatic 에서 아무것도 체크하지 않았을 경우 자동으로 장치를 찾아 구동하는 내용이다.


프로젝트 이름대로 프로그램이 설치가 되고,
프로그램 목록에 FirstProject 라는 녀석이, 응용 프로그램 관리에도 FirstProject 라는 녀석이 추가되었다.
Run을 하면, 당연히(!) FirstProejct가 실행된 화면이 나온다.(검은색 화면이라도, Lock을 풀면 실행되어 있다)



아무튼, Project - Properties - Android - Build Target 과는 관계가 없어 보인다.

Properties에서 체크가 하나라도 없으면 Apply도 OK도 활성화 되지 않는다.

Posted by 구차니