t = new TextView(context);
t
.setText(Html.fromHtml("<p>test</p>"));
Posted by 소혼

댓글을 달아 주세요



이런 경우, 그냥 다시 켰다. 마땅한 방법이 없나? 쩝..
로그캣을 체크하라는 메시지가 나와있길래, 
Couldn't copy package file to temp file.
라는 에러가 로그에 적혀있는 걸 확인할 수 있었다.


이것을 바탕으로 검색한 결과.
http://www.mail-archive.com/android-developers@googlegroups.com/msg75123.html

즉, 내부 메모리가 부족하다는 뜻이다.
간단히 설치된 앱 몇개를 삭제해주니 에러가 사라졌다.(에뮬레이터의 내장 메모리가 너무 작았던 거구나 ;;)

또,
타겟에 올릴 때 연속해서 시도할 경우 이런 에러 메시지가 나는 경우가 있었다.

Posted by 소혼

댓글을 달아 주세요


저작권 문제 있으면 삭제 하겠습니다.

android.os.Environment.getExternalStorageDirectory().getAbsolutePath();

/sdcard/ 가 기본 경로인듯 하다.

또 sdcard에 파일을 쓰려고 한다면,
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"></uses-permission>
을 반드시 주어야 함.
Posted by 소혼

댓글을 달아 주세요

수행 시간이 오래 걸리는 작업이 있으면 수행 시간을 측정하고 Thread로 뺄 수 있을 지 고민해야 한다.

long start = System.currentTimeMillis();
// 시간이 걸리는 작업
long end = System.currentTimeMillis();
Log.w("IntroActivity", "reload end" + ( end - start )/1000.0);
Posted by 소혼

댓글을 달아 주세요

androidpub의 금강석정님의 comment를 그대로 가져왔습니다.
혹시 작성하신 분께서 불편하시다면 지우겠습니다.
이걸 이용해서 어느정도 불법 복제에서 자유로울 수 있지 않을까 합니다.
참조: http://www.androidpub.com/368036

froyo에는 개발자가 app을 어디에 설치할 것인가를 정하는 것이 있는 데 manifest에 android:installLocation을 설정하는 것입니다. 

개발자가  (manifest에 android:installLocation으로) "internalOnly"(default임) 또는 "auto" 또는 "preferExternal"로 설정할 수가 있는 데 이중에서 "auto" 와 "preferExternal"로 설정한 app만 외장메모리에 설치할 수가 있습니다. "auto"는 default인 내장메모리가 full인 때에 자동으로 외장메모리에 설치하도록하는 것입니다.  "preferExternal"는 외장메모리에 우선적으로 설치하도록 하는 것이며 이때 외장메모리가 full이거나 사용불가하면 내장메모리에 설치합니다. 

app이 외장메모리에 설치될 때

1) .apk는 외장에설치되지만 DB등 app data는 여전히 내장메모리에설치됩니다.

2) .apk를 담아두는 영역은 key로 암호화되어 설치한 기기에서만 실행되며 SD 카드를 다른기기에 이동시켜서는 실행이 되지않습니다.

    단, 한 대의 기기에 여러개의 SD카드는 지원합니다.

3) 사용자의 요구에 따라 app은 내부메모리로 이동할 수도 있습니다.

  내장메모리, 외장메모리 자유롭게 이동하려면 개발자가  "auto" 또는 "preferExternal"로 설정해주어야하는 데   이전 버전에는 없었던 manifest의  android:installLocation에  "internalOnly"로 설정하든가 아예 manifest의  android:installLocation을 설정하지 않는다면(기존의 app들의 경우에 해당) 모두 내장메모리에만 설치되는 것입니다.


OS upgrade와 app upgrade모두 요구되는 상황입니다.


Posted by 소혼

댓글을 달아 주세요

안드로이드 작업하다가 가끔 빌드가 안된다며 불평할 때가 있다.
코드에 문제점이 아무데도 없지만 이렇게 불평하는 경우 막막하다.

아래와 같은 경우에 주로 발생했다.
1. 확장자가 대문자 또는 - 또는 예약어가 들어간 파일들을 resource에 넣고 수정한 다음
2. layout 파일을 수정중

이런 경우 refresh를 해도 해당 오류가 해결이 안된다면
일단
1. 프로젝트를 Clean해본다. 메뉴의 Project > clean을 누르면 된다.
2. R.java를 지워본다. gen 폴더의 R.java를 지워본다.
3. 아래 방법을 사용해본다.(도움은 안될것이다.)
프로젝트의 preference에서 안드로이드를 다시 설정해보는 것을 추천한다.(안되도 어쩔수 없지만)

1. 프로젝트 명을 선택하고 ALT+ENTER
2. Preference에서 ANDROID 탭 선택
3. 본인의 환경에 맞는 Target을 선택해제후 재 선택
4. Apply 버튼 클릭
5. 확인 버튼 클릭

허접한 글이지만, 도움이 되신다면 아래 손가락 꾹 눌러주세요.
Posted by 소혼

댓글을 달아 주세요

안드로이드 소스 코드를 받는 법은 아래 글을 참조한다.
http://bunhere.tistory.com/94 : 안드로이드 프레임워크 빌드하기

위 글대로라면 안드로이드를 받으려면 git가 있어야 하고 git 프로토콜을 이용해야 한다.

하지만 방화벽이 있는 곳에서는 git 프로토콜을 못 쓰는 경우가 있다.
이런 경우, git 를 http로 변경해서 받으면 된다.
즉,
$ repo init -u git://android.git.kernel.org/platform/manifest.git
대신,
$ repo init -u http://android.git.kernel.org/platform/manifest.git
를 사용하여야 한다.

하지만, 안드로이드는 직접 git을 사용하는 것이 아니라서 repo라는 쉘을 쓰는 것이라 위 코드만 수정해서는 안된다.

먼저, repo 파일을 열어 git:를 http:로 수정한다. (위 문서를 참고했다면 /root/bin에 있을 것이다.)
아래 명령을 실행한다.
$ repo init -u http://android.git.kernel.org/platform/manifest.git

하위 폴더에서 git:를 찾아 http:로 수정한다. grep을 쓰면 편한다.
$ grep -r "git:" .repo

아래 명령을 실행한다.
$ repo sync
Posted by 소혼

댓글을 달아 주세요

빌드는 열심히 했는데, 어떻게 돌리는 건지 몰라 고생했다.

안드로이드를 빌드할 때, 그냥 빌드하는 것이 아니라
make sdk

와 같이 sdk 라벨을 주고 빌드를 하면
/root/mydroid/out/host/linux-x86/sdk  경로가 생긴다.
이 경로에 android-sdk_eng.root_linux-x86.zip 파일을 복사하여 linux뿐 아니라 windows에서 SDK로 사용할 수 있다.

개발환경에서 직접 돌려보고자 한다면,
이클립스의 안드로이드 SDK경로를 해당 폴더로 변경하면 된다.
Posted by 소혼

댓글을 달아 주세요

http://zeph1e.tistory.com/12 님의 글 참조

#include <android/log.h>
#define  LOG_TAG "MyLogTag"
#define  LOGE(...) \
           __android_log_print(ANDROID_LOG_ERROR,LOG_TAG,__VA_ARGS__)
#define  LOGW(...) \
           __android_log_print(ANDROID_LOG_WARN,LOG_TAG,__VA_ARGS__)
#define  LOGI(...) \
           __android_log_print(ANDROID_LOG_INFO,LOG_TAG,__VA_ARGS__)
#define  LOGD(...) \
           __android_log_print(ANDROID_LOG_DEBUG,LOG_TAG,__VA_ARGS__)
#define  LOGV(...) \
           __android_log_print(ANDROID_LOG_VERBOSE,LOG_TAG,__VA_ARGS__)

그 밖의 참고사항
http://www.kandroid.org/addon-pdk/guide/index.html

Posted by 소혼

댓글을 달아 주세요

리눅스에서 안드로이드를 빌드하고 어떻게 해야 할지 멍 때리고 있다.

android 명령어 정리

android list targets   : 에뮬레이터가 지원하는 안드로이드 대상 운영체제

android list avds : 모든 AVD를 나열한다.

android create avd -n [생성할 avd 이름] -t [대상 id] : 새 AVD를 생성한다.
그 밖의 create 옵션
     -s [스킨 이름] : 스킨 이름을 가진 새 AVD를 생성한다.
     -c [용량] : 용량의 SD카드 이미지를 만들어서 사용하게 한다.


Posted by 소혼

댓글을 달아 주세요