APP_Activity_Dialog

old/API_Demo 2010. 3. 15. 20:21
[DialogActivity.java]

requestWindowFeature(Window.FEATURE_LEFT_ICON);

setContentView(R.layout.dialog_activity);
       
getWindow().setFeatureDrawableResource(Window.FEATURE_LEFT_ICON,  android.R.drawable.ic_dialog_alert);


[Manifest.xml]

<activity android:name=".app.DialogActivity"
             android:label="@string/activity_dialog"
             android:theme="@android:style/Theme.Dialog">


'old > API_Demo' 카테고리의 다른 글

APP_Activity_Hello World  (0) 2010.03.15
APP_Activity_Forwarding  (0) 2010.03.15
APP_Activity_Custom Title  (0) 2010.03.15
APP_Activiy_Custom Dialog  (0) 2010.03.15
APP_Activiy_Animation [Fade in, Zoom in]  (0) 2010.02.22
Posted by jazzlife
,
[Custom Title.java]

        requestWindowFeature(Window.FEATURE_CUSTOM_TITLE);
        setContentView(R.layout.custom_title);
        getWindow().setFeatureInt(Window.FEATURE_CUSTOM_TITLE, R.layout.custom_title_1);


[Manifest.xml]

        <activity android:name=".app.CustomTitle"
                android:label="@string/activity_custom_title"
                android:windowSoftInputMode="stateVisible|adjustPan">


[custom_title_1]

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/screen"
    android:layout_width="fill_parent" android:layout_height="fill_parent"
    android:orientation="vertical">
    <TextView android:id="@+id/left_text"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentLeft="true"
        android:text="@string/custom_title_left" />
    <TextView android:id="@+id/right_text"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentRight="true"
        android:text="@string/custom_title_right" />
</RelativeLayout>

'old > API_Demo' 카테고리의 다른 글

APP_Activity_Hello World  (0) 2010.03.15
APP_Activity_Forwarding  (0) 2010.03.15
APP_Activity_Dialog  (0) 2010.03.15
APP_Activiy_Custom Dialog  (0) 2010.03.15
APP_Activiy_Animation [Fade in, Zoom in]  (0) 2010.02.22
Posted by jazzlife
,

[Manifest.xml]

<activity android:name=".app.CustomDialogActivity"
                android:label="@string/activity_custom_dialog"
                android:theme="@style/Theme.CustomDialog">


[styles.xml]

    <style name="Theme.CustomDialog" parent="android:style/Theme.Dialog">
        <item name="android:windowBackground">@drawable/filled_box</item>
    </style>


[filled_box.xml]

<shape xmlns:android="http://schemas.android.com/apk/res/android">
    <solid android:color="#f0600000"/>
    <stroke android:width="3dp" color="#ffff8080"/>
    <corners android:radius="3dp" />
    <padding android:left="10dp" android:top="10dp"
        android:right="10dp" android:bottom="10dp" />
</shape>

'old > API_Demo' 카테고리의 다른 글

APP_Activity_Hello World  (0) 2010.03.15
APP_Activity_Forwarding  (0) 2010.03.15
APP_Activity_Dialog  (0) 2010.03.15
APP_Activity_Custom Title  (0) 2010.03.15
APP_Activiy_Animation [Fade in, Zoom in]  (0) 2010.02.22
Posted by jazzlife
,

변환 함수 (CAST)

old/SQL 2010. 3. 15. 14:24
CAST 함수 : 데이터형을 변환시키는 함수

ex)
CAST(0.245 AS VARCHAR)
CAST('2010-03-01' AS DATETIME)


SELECT time AS moonjayeol, CAST(time AS DATETIME) AS nalzza
            FROM tbl_schedule;
Posted by jazzlife
,

1. AVG 함수: 평균값 구함

2. SUM 함수: 합계를 구함

3. COUNT 함수: 열의 개수를 구함


ex)

SELECT AVG(score) AS average, SUM(score) AS total_score,
             COUNT(name) AS game FROM tbl_game;

ex)- 중복데이터 제거의 예

SELECT COUNT(DISTINCT name) AS member FROM tbl_game;


4. MAX, MIN 함수 : 최대, 최소 값을 구하는 기능

ex)

SELECT name, MAX(score) AS high, MIN(score) AS low FROM tbl_game GROUP BY name;

** WHERE은 집합 함수를 사용할 수 없어서 GROUP BY, HAVING 사용

ex)

SELECT name, SUM(score) AS over300 FROM tbl_game
             GROUP BY name HAVING (SUM(score) >= 300);

Posted by jazzlife
,
1. GETDATE 함수 (=DATE, SYSDATE) : 현재 날짜와 시간을 반환

ex)
SELECT GETDATE();

* DAY(m), MONTH(m), YEAR(m)


2. DATEADD 함수 : 일 수나 시간 수를 더하는 기능

DATEADD(단위요소 지정, 더하는 값, 더할 수치)



3. DATEDIFF 함수 : 날짜형으로 된 값끼리 차를 구하는 기능


ex)
SELECT DATEADD(m, 6, date1) FROM tbl_datelist WHERE no = 1;
SELECT DATEDIFF(d, date1, date2) FROM tbl_datelist WHERE no = 2;
SELECT DATEDIFF(d, GETDATE(), '2010-03-01');




Posted by jazzlife
,
1. LEN, LENGTH 함수 : 문자열의 문자 수 반환

ex)
SELECT LEN('꽃이 피다');
SELECT sname, LEN(sname) AS result FROM tbl_stdname;


2. SUBSTR, SUBSTRING 함수 : 지정된 부분만큼 문자를 가져와 반환

ex)
SELECT fname, SUBSTRING(fname, 2, 2) AS result FROM tbl_stdname;


3. LTRIM, RTRIM 함수 : 문자열의 맨 앞이나 맨 뒤의 공백을 삭제

ex)
SELECT LTRIM(pname) AS leftsp,
             RTRIM(pname) AS rightsp FROM tbl_pet;


4. UPPER, LOWER 함수 : 대소문자 변환

ex)
SELECT sname, LOWER(sname) AS somunja FROM tbl_stdname;
SELECT  fname, UPPER(fname) AS daemunja FROM tbl_stdname;



(RDBMS 고유함수)
LAST_DAT(time) : 지정한 날짜의 최종일을 반환하는 함수
POSITON('dum' IN 'hodumaru') : 문자열의 특정 문자열의 위치를 반환하는 함수

'old > SQL' 카테고리의 다른 글

집합 함수 (AVG, SUM, COUNT, MAX, MIN)  (0) 2010.03.15
날짜함수 (GETDATE, DAY, MONTH, YEAR, DATEADD, DATEDIFF  (0) 2010.03.15
수치 함수 (CEILING, CEIL, FLOOR, RAND, ROUND)  (0) 2010.03.15
기타 연산자  (0) 2010.03.12
문자 처리 연산자  (0) 2010.03.12
Posted by jazzlife
,
1. CEILING, CEIL 함수 : 소수점 이하를 올리는 함수

2. FLOOR 함수 : 소수점 이하를 내리는 함수

ex)
USE db_picbook;
SELECT cost, CEILING(cost) AS result1,
                     FLOOR(cost) AS result2 FROM tbl_sum;


3. RAND 함수 : 0~1.0 미만의 범위의 난수를 구하는 함수

ex)
SELECT RAND();
SELECT RAND(7);


4. 그 외

함수명 기능 주의
ABS(m) m의 절대값을 반환  
ROUND(m, x) 소수점 이하 x자리에서 m을 사사오입한 값을 반환  
POWER(m, x) m을 n승한 수치를 반환 POW 함수
SQRT(m) m에 대한 제곱근을 반환 SQR 함수
MOD(m, n) m을 n으로 나눈 나머지를 반환 %연산자
SIN(m) m에 대한 사인값을 반환  
COS(m) m에 대한 코사인값을 반환  
TAN(m) m에 대한 탄젠트값을 반환  
EXP(m) m의 자수승을 반환  
LOG(m, n) 밑이 m인 n의 자연로그값을 반환  
SIGN(m) m의 부호를 반환 양:1
음:-1
0: 0

Posted by jazzlife
,

Stack & Queue

old/JAVA 2010. 3. 15. 12:36
Stack  : LIFO 구조의 LinkedList 

                  활용) 수식계산, 수식괄호검사, undo/redo, 웹브라우저 뒤로/앞으로

boolean empty() Stack이 비었는지
Objecty peek() Stack의 맨 위에 저장된 객체 반환, 없으면 null
Object pop() Stack 맨 위의 객체 꺼냄
Object push(Object item) Stack에 객체 item저장
int search(Object o) Stack에 o객체 찾아서 위치 반환


Queue : FIFO 구조의 LinkedList
   
              활용) 최근사용문서, 인쇄작업 대기목록, 버퍼(buffer)

Object element() 저장된 객체 읽어옴. 없으면 예외발생
boolean offer(Object o) Queue에 객체 저장
Object peek() 저장된 객체 읽어옴. 없으면 null
Object poll() Queue에서 꺼냄. 없으면 null
Object remove() Queue에서 꺼냄. 없으면 예외발생


'old > JAVA' 카테고리의 다른 글

Collection Framework  (0) 2010.05.24
garbage collection 이란?  (0) 2010.05.10
Iterator(구 Enumeration), ListIterator  (0) 2010.03.16
Deep Copy vs Shallow Copy  (0) 2010.03.15
JAVA Grammer  (0) 2010.03.15
Posted by jazzlife
,

'old > Prepare' 카테고리의 다른 글

DDMS에서 로그를 확인하기 위한 메서드  (0) 2010.03.04
R.drawable image preview  (0) 2010.03.03
Framework 소스 변경 필요 시  (0) 2010.03.02
시스템 유틸 삭제 및 유저데이터 삭제  (0) 2010.03.02
Sim Card Check 해제  (0) 2010.03.02
Posted by jazzlife
,

Deep Copy vs Shallow Copy

old/JAVA 2010. 3. 15. 10:46

Shallow Copy(얕은 복사): 단순 참조만 복사.
Deep Copy(깊은 복사): 새로운 객체나 배열을 생성하여 원본과 같은 데이터 복사.

차이점 : Shallow Copy는 참조이므로 원본 데이터 변하면 같이 변한다.


code)

 import java.util.Arrays;

public class CopyTest extends Arrays {
 public static void main(String args[]) {
  int[] data = {0,1,2,3 };
  int[] sCopy = null;
  int[] dCopy = null;
 
  sCopy = shallowCopy(data);
  dCopy = deepCopy(data);
 
  System.out.println("Original:" + Arrays.toString(data));
  System.out.println("Shallow :" + Arrays.toString(sCopy));
  System.out.println("Deep :" + Arrays.toString(dCopy));
  System.out.println();
 
  data[0] = 5;
 
  System.out.println("Original:" + Arrays.toString(data));
  System.out.println("Shallow :" + Arrays.toString(sCopy));
  System.out.println("Deep :" + Arrays.toString(dCopy));
 }
 
 public static int[] shallowCopy(int[] objArray) {
  return objArray;
 }
 
 public static int[] deepCopy(int[] objArray) {
  if(objArray==null) return null;
  int[] result = new int[objArray.length];
 
  System.arraycopy(objArray, 0, result, 0, objArray.length);
  return result;
 }
}


result)

Original:[0, 1, 2, 3]
Shallow :[0, 1, 2, 3]
Deep :[0, 1, 2, 3]

Original:[5, 1, 2, 3]
Shallow :[5, 1, 2, 3]
Deep :[0, 1, 2, 3]

'old > JAVA' 카테고리의 다른 글

Collection Framework  (0) 2010.05.24
garbage collection 이란?  (0) 2010.05.10
Iterator(구 Enumeration), ListIterator  (0) 2010.03.16
Stack & Queue  (0) 2010.03.15
JAVA Grammer  (0) 2010.03.15
Posted by jazzlife
,

JAVA Grammer

old/JAVA 2010. 3. 15. 10:22
Deep Copy vs Shallow Copy

'old > JAVA' 카테고리의 다른 글

Collection Framework  (0) 2010.05.24
garbage collection 이란?  (0) 2010.05.10
Iterator(구 Enumeration), ListIterator  (0) 2010.03.16
Stack & Queue  (0) 2010.03.15
Deep Copy vs Shallow Copy  (0) 2010.03.15
Posted by jazzlife
,

기타 연산자

old/SQL 2010. 3. 12. 21:00


; 영어에 가까운 표현을 할 수 있는 기능의 연산자


1) BETWEEN ~ AND


SELECT score FROM tbl_game WHERE (score >= 10) AND (score <= 100); 을 바꾸면?
ex)
SELECT score FROM tbl_game WHERE score BETWEEN 10 AND 100;
* 코드의 길이를 줄일 수 있다.


2) IS NULL , IS NOT NULL

ex)
SELECT * FROM tbl_bookprice WHERE price IS NOT NULL;

SELECT * FROM tbl_bookprice WHERE price IS NULL;

* 열 이름 = NULL 같은 수식은 사용할 수 없다.


3) IN , NOT IN
    ; 지정한 값과 일치하는 데이터만 가져온다.

SELECT player FROM tbl_team WHERE (backno = 5) OR (backno != 10);
SELECT player FROM tbl_team WHERE (backno != 5) AND (backno != 10);
ex)
SELECT player FROM tbl_team WHERE backno IN (5, 10,..);

SELECT player FROM tbl_team WHERE backno NOT IN (5, 10,..);
* 코드의 길이를 줄일 수 있다.




S

'old > SQL' 카테고리의 다른 글

문자열 함수 (LEN, LENGTH, SUBSTRING, SUBSTR, LTRIM, RTRIM, UPPER, LOWER)  (0) 2010.03.15
수치 함수 (CEILING, CEIL, FLOOR, RAND, ROUND)  (0) 2010.03.15
문자 처리 연산자  (0) 2010.03.12
논리 연산자  (0) 2010.03.12
비교 연산자  (0) 2010.03.12
Posted by jazzlife
,

문자 처리 연산자

old/SQL 2010. 3. 12. 20:47


; 문자를 다루기 위해서 사용


1) 문자 연결

SELECT 열이름1 || 열이름2 FROM 테이블명;


* SQL 서버의 경우 '||' 대신 '+'를 사용한다.


2) 문자열 비교

SELECT 열이름 FROM 테이블명 WHERE 비교할 열 이름 LIKE 조건;


* LIKE : 특정 문자를 가져오고 싶을 때 사용

* 조건지정
 기호           기능  사용법                          의미
  % 0~임의수의 문자열  %산% 설악산, 산촌 등 '산'이 들어간 문자열
  _ 한 문자에 해당  _해준 이해준, 민해준 등 임의의 한 문자가 들어간 문자열


ex) '이'로 시작하는 문자열을 골라내는 명령.

SELECT name FROM tbl_namecard WHERE name LIKE '이%;


'old > SQL' 카테고리의 다른 글

수치 함수 (CEILING, CEIL, FLOOR, RAND, ROUND)  (0) 2010.03.15
기타 연산자  (0) 2010.03.12
논리 연산자  (0) 2010.03.12
비교 연산자  (0) 2010.03.12
산술 연산자  (0) 2010.03.12
Posted by jazzlife
,

논리 연산자

old/SQL 2010. 3. 12. 20:08



; 여러 개의 조건을 조합하여 복잡한 조건식을 만들기 위해 사용

사용 가능한 논리 연산자 : AND , OR , NOT



ex1)

SELECT * FROM tbl_exam WHERE ((id%2)<1) AND (score_eng >= 80);


ex2)

SELECT * FROM tbl_exam WHERE (score_kor >= 90) OR (score_eng >= 90);


ex3)

SELECT * FROM tbl_exam WHERE ((score_kor + score_eng) > 150);

'old > SQL' 카테고리의 다른 글

기타 연산자  (0) 2010.03.12
문자 처리 연산자  (0) 2010.03.12
비교 연산자  (0) 2010.03.12
산술 연산자  (0) 2010.03.12
WHERE절  (0) 2010.03.12
Posted by jazzlife
,

비교 연산자

old/SQL 2010. 3. 12. 20:07



; 조건식을 만들 때 사용한다.

사용 가능한 연산자 : = , < , <= , > , >= , <> (!=)


ex1)

SELECT id, name, score_eng FROM tbl_exam WHERE score_eng > 90;


ex2)

SELECT id, name, score_kor FROM tbl_exam WHERE score_name = '김상택';

'old > SQL' 카테고리의 다른 글

문자 처리 연산자  (0) 2010.03.12
논리 연산자  (0) 2010.03.12
산술 연산자  (0) 2010.03.12
WHERE절  (0) 2010.03.12
SQL의 기본  (0) 2010.03.12
Posted by jazzlife
,

산술 연산자

old/SQL 2010. 3. 12. 19:51


; SQL에서 수치 계산을 하기 위해 사용하는 기호

사용 가능한 연산자 : + , - , * , / , %



ex1)
SELECT name, (score_kor + score_eng) AS sum FROM tbl_exam;


ex2)
SELECT name, (score_kor + score_eng) AS sum FROM tbl_exam ORDER BY average DESC;

'old > SQL' 카테고리의 다른 글

논리 연산자  (0) 2010.03.12
비교 연산자  (0) 2010.03.12
WHERE절  (0) 2010.03.12
SQL의 기본  (0) 2010.03.12
MSDE 설치 및 시동  (0) 2010.03.12
Posted by jazzlife
,

WHERE절

old/SQL 2010. 3. 12. 19:45


; 특정 조건에 맞는 데이터만 가져오고 싶을 때 사용.


ex1)
SELECT 열이름 FROM 테이블명 WHERE 조건식;


ex2)
SELECT 열이름 FROM 테이블명 ORDER BY 열이름 조건;


'old > SQL' 카테고리의 다른 글

비교 연산자  (0) 2010.03.12
산술 연산자  (0) 2010.03.12
SQL의 기본  (0) 2010.03.12
MSDE 설치 및 시동  (0) 2010.03.12
OSQL의 시동  (0) 2010.03.12
Posted by jazzlife
,

SQL의 기본

old/SQL 2010. 3. 12. 19:38
1. DB 만들기
  
CREATE DATABASE 데이터베이스명;


2. DB 지정

USE 데이터베이스명;


3. TABLE 만들기

CREATE TABLE 테이블명 (열이름 데이터형 ,.....,);

* 데이터형 :
   (정수형)    INT, SMALLINT
    (실수형)    DECIMAL, NUMERIC, REAL, FLOAT, DOUBLE PRECISION
   (문자열형) CHAR(N), VARCHAR(N), TEXT, NCHAR(N), NVARCHAR(N), NTEXT



4. 제약 조건 지정


제약조건 의미
PRIMARY KEY 데이터 중복, NULL 금지
UNIQUE 한가지 값만 갖는다
CHECK 조건식에 안 맞으면 금지
NOT NULL NULL 값 금지
DEFAULT=값 지정한 값을 초기값으로 지정

ex)
CREATE TABLE tbl_test (code INT UNIQUE, name VARCHAR(30),
                                    height FLOAT, id INT UNIQUE NOT NULL);  



5. 데이터 등록

INSERT INTO 테이블명(열이름,...,..) VALUES (열값,....,..);



6. 데이터 가져오기


   1) 테이블 전체 가져오기

SELECT * FROM 테이블명;


   2) 한열 가져오기

SELECT 열이름 FROM 테이블명;


   3) 여러열 가져오기

SELECT 열이름... FROM 테이블명;



7. 데이터 정렬

   1) 오름차순

SELECT * FROM 테이블명 ORDER BY 열이름 ASC;


   2) 내림차순

SELECT * FROM 테이블명 ORDER BY 열이름 DESC;



8. 기타 옵션


   1) 데이터 그룹화 (지정한 열을 하나로 묶기)

SELECT 열이름,... FROM 테이블명 GROUP BY 열이름;



   2) 중복 데이터 제거

SELECT DISTINCT 열이름 FROM 테이블명;



   3) 열이름 바꿔서 출력

SELECT (구)열이름 AS (신)열이름 FROM 테이블명;

'old > SQL' 카테고리의 다른 글

산술 연산자  (0) 2010.03.12
WHERE절  (0) 2010.03.12
MSDE 설치 및 시동  (0) 2010.03.12
OSQL의 시동  (0) 2010.03.12
adb op for sqlite3  (0) 2010.02.09
Posted by jazzlife
,

MSDE 설치 및 시동

old/SQL 2010. 3. 12. 18:39

MSDE 는 기존 SQL 2000 에서 사용되는 것중에 저장 프로시저 등은 제약이 있습니다.
물론 DB 공간도 최대 2Gbyte 까지만 사용을 할 수 밖에 없다.


근데 간단한 사이트 또는 저용량의 DB 를 구현 한다면, 매우 유용하게 사용 할 수 있다.

1. 설치
C:\SQL2KSP4 의 위치에 서비스팩이 위치해 있습니다.

C:\SQL2KSP4\MSDE\setup.exe sapwd=1234 disablenetworkprotocols=0 securitymode=sql
-> 한줄로 쭉~ 붙여 쓰세요..
-> SAPWD : SQL 서버의 system admin(sa)의 로그인 암호입니다.
-> DISABLENETWORKPROTOCOLS :
         
DISABLENETWORKPROTOCOLS=1로 설치하거나
         DISABLENETWORKPROTOCOLS 옵션을 넣지 않았을 경우 해당 시스템 외의 다른
         컴퓨터나 다른 서버스에서
SQL Server(MSDE)로 접근을 하지 못하게 됩니다.
-> SECURITYMODE :
         
SECURITYMODE=SQL 옵션을 주지 않을 경우 윈도우즈
인증 모드로 MSDE가 설치
         되며
이로 인해 몇몇 서비스가 SQL서버에 로그인을 하지 못하는 경우도 발생합니다.


2. osql.exe 유틸 사용을 취한 접속

-> SQL Service Manager를 실행하여 서버를 구동한 후

osql.exe -U sa -P sa암호
-> osql.exe 는 초기 암호 설정 시나 기타 간다난 사항 셋팅 시에 사용하면 편리합니다.
-> 그외 다른 사항은 외부에서 Entermanager 로 MSDE 에 접속하면 기존 SQL 서버와 같이
   보이기 때문에 그리 걱정 안하셔도 됩니다.

'old > SQL' 카테고리의 다른 글

산술 연산자  (0) 2010.03.12
WHERE절  (0) 2010.03.12
SQL의 기본  (0) 2010.03.12
OSQL의 시동  (0) 2010.03.12
adb op for sqlite3  (0) 2010.02.09
Posted by jazzlife
,

OSQL의 시동

old/SQL 2010. 3. 12. 18:30

* 설치폴더에 있는 osql.exe의 path를 환경변수에 등록하여 어디서나 실행되게 하자.

1) SQL Server Manager를 구동한다.

2) osql -U 유저아이디 -P 패스워드

'old > SQL' 카테고리의 다른 글

산술 연산자  (0) 2010.03.12
WHERE절  (0) 2010.03.12
SQL의 기본  (0) 2010.03.12
MSDE 설치 및 시동  (0) 2010.03.12
adb op for sqlite3  (0) 2010.02.09
Posted by jazzlife
,
 

1. 우분투설치. 안드로이드 개발 기준이 되는 OS는 우분투와 MacOSX 입니다. http://www.ubuntu.com/ 부터 설치합니다.

2. 소스받기. 안드로이드에서 소스 트리를 주욱 다운 받아봅니다. http://source.android.com/download

일단 받고 나서 디렉토리를 살펴보면 저 방대한 소스 트리중 대체 어디서 부터 봐야 하는 것인가라는 생각이 들게 됩니다.

3. 시작하기. development\pdk\docs 에 있는 Android Porting Guide를 읽어봅니다. 최신 소스와는 차이가 있지만 어디서부터 시작을 해야 하는지 방향을 잡아줍니다. 이 숨겨져(?) 있는 문서가 안드로이드 포팅을 위한 소스 분석의 시작포인트입니다.

1, 2번을 생략하고 일단 Document를 읽어보시고 싶으신 분은 웹에서(http://git.source.android.com/) snapshot을 받아서 보실 수 있습니다.

대략적인 소스 구성에 대한 설명을 볼 수 있습니다. 그리고 거기서 나오는 디바이스들 중 비디오, 키, 오디오 정도의 순서로 소스를 따라들어가면 될듯 합니다.

소스를 보고 있으면 가끔 우주를 헤메는 기분이 들고 그게 정상입니다..


Get source

For information about current problems and fixes, see Known issues.

This document describes how to set up your local work environment, how to use Repo to get the Android files, and how to build the files on your machine.

Related reading:
  • For an overview of the entire code-review and code-update process, see Workflow.
  • For reference details about Repo, see Using Repo and Git.

What's in the source?

For a description of all the projects that make up the Android source code, see Project layout. To see snapshots and histories of the files available in the public Android repositories, visit theGitWeb web interface.
The source is approximentely 2.1GB in size. You will need 6GB free to complete the build.

Setting up your machine

To build the Android source files, you will need to use Linux or Mac OS. Building under Windows is not currently supported.

Linux

The Android build is routinely tested on recent versions of Ubuntu (6.06 and later), but reports of successes or failures on other distributions are welcome.

Ubuntu Linux (i386)

To set up your Linux development environment, make sure you have the following:
  • Git 1.5.4 or newer and the GNU Privacy Guard.
$ sudo apt-get install git-core gnupg
  • JDK 5.0, update 12 or higher.
$ sudo apt-get install sun-java6-jdk
  • The following packages: flex, bison, gperf, libsdl-dev, libesd0-dev, libwxgtk2.6-dev (optional), build-essential, zip, curl.
$ sudo apt-get install flex bison gperf libsdl-dev libesd0-dev libwxgtk2.6-dev build-essential zipcurl libncurses5-dev zlib1g-dev
  • You might also want Valgrind, a tool that will help you find memory leaks, stack corruption, array bounds overflows, etc.
$ sudo apt-get install valgrind

Ubuntu Linux (amd64)

This has not been as well tested. Please send success or failure reports to repo-discuss@googlegroups.com.

The Android build requires a 32-bit build environment as well as some other tools:
  • Git, JDK, flex, and the other packages as listed above in the i386 instructions:
$ sudo apt-get install git-core gnupg flex bison gperf build-essential zip curl
  • Get a 32-bit version of the JVM:

    $ sudo apt-get install sun-java6-jdk # JDK tools (javac, etc)
    $ sudo apt-get install ia32-sun-java6-bin # JRE (java itself)
    $ sudo update-java-alternatives -s ia32-java-6-sun

  • Pieces from the 32-bit cross-building environment:
$ sudo apt-get install lib32z1-dev gcc-multilib g++-multilib libc6-dev-i386 lib32ncurses5-dev ia32-libs

Ubuntu doesn't have packages for the X11 libraries, but that can be worked around with the following command:

$ sudo ln -s /usr/lib32/libX11.so.6 /usr/lib32/libX11.so

Other Linux

There's no reason why Android cannot be built on non-Ubuntu systems. Please send any success or failure reports to repo-discuss@googlegroups.com. In general you will need:

Anything missing from this list? Please let us know!


Mac OS

Requirements:

  • To build the Android files in a Mac OS environment, you need an Intel/x86 machine. The Android build system and tools do not support the obsolete PowerPC architecture.
  • Android must be built on a case-sensitive file system.
    • We recommend that you build Android on a partition that has been formatted with the "Case-sensitive Journaled HFS+" file system:
      • A case-sensitive file system is required because the sources contain files that differ only in case.
      • Journaled systems are more robust. (This is optional, but recommended.)
      • HFS+ is required to successfully build Mac OS applications such as the Android Emulator for OS X.
    • If you want to avoid partitioning/formatting your hard drive, you can use a case-sensitive disk image instead.
      • To create the image:
        • launch /Applications/Utilities/Disk Utility
        • select "New Image"
        • size: 8 GB (this will work, but you can choose more if you want to)
        • volume format: case sensitive, journaled
      • This will create a .dmg file which, once mounted, acts as a drive with the required formatting for Android development. For a disk image named "android.dmg" stored in your home directory, you can add the following to your ~/.bash_profile to mount the image when you execute "mountAndroid":

        # command to mount the android file image
        function mountAndroid { hdiutil attach ~/android.dmg -mountpoint /Volumes/android; }

        Once mounted, you'll do all your work in the "android" volume. You can eject it (unmount it) just like you would with an external drive.
To set up your Mac OS development environment, follow these steps:
  1. Install the XCode version 2.4 or later from http://developer.apple.com . We recommend version 3.0 or newer.
  2. Install MacPorts. To do this:
    1. Download the tar file from http://www.macports.org/ and untar the files.
    2. Run the following:
      $ ./configure
      $ make
      $ sudo make install
      $ sudo port selfupdate
    3. View your path:
      $ echo $PATH
      Make sure that /opt/local/bin is in your path before /usr/bin. If not, edit $HOME/.bash_profile and add the line "export PATH=/opt/local/bin:$PATH" (or the equivalent for other shells) after any other PATH-related lines. To verify that your path is now correct, open a new terminal and run echo $PATH again.
  3. Upgrade GNU make to 3.81 or later by running
    $ sudo port install gmake
    $ sudo ln -s gmake /opt/local/bin/make
  4. Install libsdl by running
    $ sudo port install libsdl
  5. Set an appropriate per-process file descriptor limit. To do this, add the following lines to your .bash_profile file:
    # set the number of open files to be 1024
    ulimit -S -n 1024
  6. Install Git and the GNU Privacy Guard:
    $ sudo port install git-core gnupg
    (You will need Git 1.5.4 or newer.)
  7. Install these optional packages, if you want to:
    $ sudo port install xemacs +sumo
    $ sudo port install gimp
Note: If you get errors from port install, prefix your commands with POSIXLY_CORRECT=1, for example:
$ POSIXLY_CORRECT=1 sudo port install package-name


Installing Repo

Repo is a tool that makes it easier to work with Git in the context of Android. For more information about Repo, see Using Repo and Git.

To install, initialize, and configure Repo, follow these steps:

  1. Make sure you have a ~/bin directory in your home directory, and check to be sure that this bin directory is in your path:
    $ cd ~
    $ mkdir bin
    $ echo $PATH
  2. Download the repo script and make sure it is executable:
    $ curl http://android.git.kernel.org/repo >~/bin/repo
    $ chmod a+x ~/bin/repo
  3. Create an empty directory to hold your working files:
    $ mkdir mydroid
    $ cd mydroid
  4. Run repo init to bring down the latest version of Repo with all its most recent bug fixes. You must specify a URL for the manifest:
    $ repo init -u git://android.git.kernel.org/platform/manifest.git
  5. When prompted, configure Repo with your real name and email address. If you plan to submit code, use an email address that is associated with a Google account.
A successful initialization will end with a message such as
repo initialized in /mydroid


Your client directory should now contain a .repo directory where files such as the manifest will be kept.


What will my name and email be used for?

To use the Gerrit code-review tool,
you will need an email address that is connected with a registered Google account (which does not have to be a Gmail address). Make sure this is a live address at which you can receive messages. The real name that you provide here will show up in attributions for your code submissions.

What is a manifest file?

The Android source files are divided among a number of different repositories. A manifest file contains a mapping of where the files from these repositories will be placed within your working directory when you synchronize your files.


Getting the files

To pull down files to your working directory from the repositories as specified in the default manifest, run

$ repo sync

For more about repo sync and other Repo commands, see Using Repo and Git.

The Android source files will be located in your working directory under their project names.


Building the code

To build the files, run make from within your working directory:
$ cd ~/mydroid
$ make

If your build fails, complaining about a missing "run-java-tool", try setting the ANDROID_JAVA_HOME env var to $JAVA_HOME before making. E.g.,

$ export ANDROID_JAVA_HOME=$JAVA_HOME

Using an IDE

Troubleshooting

ImportError: No module named readline

Mac users getting this should install Python 2.5.2.

Linux users that installed Python from source, make sure the dependencies for libreadline are installed, and rebuild Python.

What's next?

To learn about reporting an issue and searching previously reported issues, see Report bugs. For information about editing the files and uploading changes to the code-review server, see Contribute.

'old > Build Serv' 카테고리의 다른 글

adb driver setting for ubuntu  (0) 2010.03.12
Ubuntu Build Machine Install  (0) 2010.02.04
Posted by jazzlife
,

On windows:

If you’re developing on Windwos (32-bit only), you need to install the USB driver for adb:

1.  Download the driver ZIP file and unzip it.

2. Connect your Android device via USB. When the Found New Hardware Wizard appears, you’ll be asked if you’d like Windows Update to search for software, select No, not this time and click Next.

3. Select Install from a list or specified location and clieck Next.

4. Select Search for the best driver in these locations. Browse and select the unzipped file.

5. Click Finish. You’re all set.

On Ubuntu Linux

1.
Plug-in your device then exec command ‘lsusb’ then you will see the list of current usb devices

Bus 003 Device 023: ID 18d1:d00d

We will see a device is appeared when it plug-in and disappeared when it plug-out. That device is we wanted and take my environment as an example it is located at line 1, “Bus 003 Device 023: ID 18d1:d00d”, without device provider.

2. Login as root and create this file: /etc/udev/rules.d/50-android.rules

For Gusty/Hardy, edit the file to read:

SUBSYSTEM==”usb”, SYSFS(idVendor)==”18d1“, MODE=”0666″

For Dapper, edit the file to read:

SUBSYSTEM==”usb_device”, SYSFS(idVendor)==”18d1“, MODE=”0666″

P.S. the “18d1” is hard coded in android/kernel/drivers/usb/gadget/android_adb.c
#define DRIVER_VENDOR_ID

2. Nwx execute:

chmod a+rx /etc/udev/rules.d/50-android.rules

3. Restart udev to make the rule active.

 sudo /etc/init.d/udev restart

To construct the Android develop environment in Windows

October 28, 2008 at 3:33 pm | In android | Leave a Comment
Tags:
,

1. Create folder. Ex: C:\Android

2. Download Android SDK. Decompress it and put it in C:\Android\android_sdk

3. Download eclipse  3.4 (Ganymede). Decompress it and put it in C:\eclipse

4. Download and install Java SE Development Kit (JDK 5 or JDK 6).

5. Add the jre path to your path of environment variable. Ex: C:\Program Files\Java\jre1.6.0_05\bin

6. Install Android Eclipse Plugin ADT (Android Development Tools)

7. Installing the Eclipse Plugin (ADT)

  • Decompress it and put it in C:\Android\ADT\
  • Eclipse -> Help -> Software Updates… -> Add site -> Local -> select C:\Android\ADT\ -> OK -> OK
  • Press the check box of C:\Android\ADT and press install
  • Restart Eclipse.

8. Assign the path of Android SDK. Eclipse-> Window -> Preferences -> Android -> SDK Location -> C:\Android\android_sdk.

9. Now, you can create the Android project.

If Console display “Failed to get the adb version: Cannot run program “C:\Android\android_sdk\tools\adb.exe”: CreateProcess error=3″, you can ignore it.

'old > Build Serv' 카테고리의 다른 글

ubuntu android 설치  (0) 2010.03.12
Ubuntu Build Machine Install  (0) 2010.02.04
Posted by jazzlife
,

Vcard

old/sms_mms 2010. 3. 9. 21:02

'old > sms_mms' 카테고리의 다른 글

외부 app의 DB와 동기화를 위해서 감시하는 코드  (0) 2010.04.23
소프트키보드 설정  (0) 2010.03.30
Posted by jazzlife
,
    @SuppressWarnings("unused")
    private static void log(String logMsg) {
        Thread current = Thread.currentThread();
        long tid = current.getId();
        StackTraceElement[] stack = current.getStackTrace();
        String methodName = stack[3].getMethodName();
        // Prepend current thread ID and name of calling method to the message.
        logMsg = "[" + tid + "] [" + methodName + "] " + logMsg;
        Log.d(TAG, logMsg);
    }

'old > Prepare' 카테고리의 다른 글

이클립스 한글언어팩  (0) 2010.03.15
R.drawable image preview  (0) 2010.03.03
Framework 소스 변경 필요 시  (0) 2010.03.02
시스템 유틸 삭제 및 유저데이터 삭제  (0) 2010.03.02
Sim Card Check 해제  (0) 2010.03.02
Posted by jazzlife
,

'old > Prepare' 카테고리의 다른 글

이클립스 한글언어팩  (0) 2010.03.15
DDMS에서 로그를 확인하기 위한 메서드  (0) 2010.03.04
Framework 소스 변경 필요 시  (0) 2010.03.02
시스템 유틸 삭제 및 유저데이터 삭제  (0) 2010.03.02
Sim Card Check 해제  (0) 2010.03.02
Posted by jazzlife
,

전체소스를 Linux에서 풀어보시면

build_target.sh 라는 파일이 있습니다.

이것을 실행하시면 build가 진행이 되고

/out/target/product/alohag 밑에 boot.img, system.img, userdata.img가 생성이 됩니다.

이것을 Fastboot mode에서 download.bat 파일을 실행하면

폰으로 다운로드가 되고 새로운 System.img파일이 올라가게 됩니다.

*download.bat파일은 tool이라는 폴더에 공유해 드렸습니다.

 

/out/target/common/obj/JAVA_LIBRARIES/framework_intermediates

빌드를 하시고 이쪽을 열어 보시면 classes.jar 파일이 생성 되어 있습니다.

이것을 eclipse에서 사용하는 것 입니다.

Posted by jazzlife
,

Usb 케이블 연결하고 power를 눌러 폰을 켜고(현재 버전이 불안정 해서 그런 것이고  나중에는 폰켜고 나서도 될 거에요)USB Debugging”이 켜져 있는지 확인하고

도스창 띄워놓고

 

adb remount

adb shell

#cd system/app

#rm Mms.apk

#exit

 

이렇게 실행 하시면 Mms app가 폰에서 삭제 됩니다.

이렇게 하고 나서 fastboot mode에서

 

fastboot.exe -w

 

이렇게 입력하시면 User data가 지워 집니다.

다시 폰을 부팅하시고 eclipse에서 빌드된 Mms apk를 폰에 올리시면 됩니다.

'old > Prepare' 카테고리의 다른 글

R.drawable image preview  (0) 2010.03.03
Framework 소스 변경 필요 시  (0) 2010.03.02
Sim Card Check 해제  (0) 2010.03.02
프로젝트 실행 & 이클립스 디버깅 & 단말 세팅  (0) 2010.02.11
이클립스 개발환경 & 사용법  (0) 2010.02.11
Posted by jazzlife
,

시료폰에 전체이미지를 새로 올릴 경우 간혹 심카드가 없어서 긴급통화를 제외하고 모든 기능이 잠기게 되는 경우가 발생하는데

그런 상황이 발생할 때 심카드 체크를 해제해야 합니다.

 

Android SDK c:\android에 설치되었을 때의 예입니다.


** usb를 연결하고 power 버튼을 눌러 전원을 켜고 usb debugging 모드로 진입하는 것을 확인 한 후 **

1.
 
C:\android\tools\adb shell
2.     #su
3.     #echo app.setupwizard.disable=1 > /data/local.prop
4.     #reboot

 

폰이 재부팅되면 심카드 체크가 해제되어 모든 기능이 활성화 되어 정상 테스트가 가능합니다.

Posted by jazzlife
,

QuickSynergy

old/Linux 2010. 2. 26. 18:01
http://gtko.springnote.com/pages/2774338?print=1


[Linux]

- server

1. QuickSynergy를 설치한다.
2. share 메뉴에서 모니터 설정에 ID를 할당한다.
3. /etc/hosts 설정
    (ex)
    192.168.0.1    windows
    192.168.0.2    linux
4. system-preferences-startup application에 등록하여 시작시 실행되게 한다.

- client

1. QuickSynergy를 설치한다.
2. share 메뉴에서 모니터 설정에 ID를 할당한다.
3. use 메뉴에서 서버의 IP와 ID를 입력한다.
3. /etc/hosts 설정
    (ex)
    192.168.0.1    windows
    192.168.0.2    linux
4. system-preferences-startup application에 등록하여 시작시 실행되게 한다.


[Windows]

1. Synergy를 설치하고 한글 패치를 한다.
2. Client와 Host의 설정을 변경한다.
3. C:\windows\system32\drivers\etc\hosts 설정
    (ex)
    192.168.0.1    windows
    192.168.0.2    linux
4. Autostart로 설정.

'old > Linux' 카테고리의 다른 글

하드웨어 정보 확인  (0) 2010.03.25
기본 명령어  (0) 2010.03.25
Linux Partition  (0) 2010.03.25
tar 사용법  (0) 2010.03.25
RPM 사용법  (0) 2010.03.25
Posted by jazzlife
,