안드로이드 개발(150)
-
설치된 어플리케이션 목록 가져오기
PackageManager를 이용하면 손쉽게 설치 목록을 얻어와서 리스트 뷰에 뿌려줄 수 있다. PackageManager packagemanager = getPackageManager(); final List appList = packagemanager.getInstalledPackages(0); ArrayAdapter adaptedAppList = new ArrayAdapter(this, ndroid.R.layout.simple_list_item_single_choice, appList); listView = getListView(); listView.setAdapter(adaptedAppList); 특정 어플리케이션을 삭제하는 방법은 다음과 같다. Uri uri = Uri.fromParts("pac..
2010.03.10 -
현재 실행 중인 프로세스 목록 가져오기
복잡하게 생각할 것 없이 프로세스 목록을 보여주는 shell command 명령인 "ps"를 실행시켜서 프로세스 목록을 받아오면 된다. 문제는 kill 명령은 권한 문제로 인해 사용할 수 없는 것 같으니 다른 대안을 찾아야 할 듯.. try { Process ps = Runtime.getRuntime().exec("ps"); byte[] msg = new byte[128]; int len; String Value = ""; while((len = ps.getInputStream().read(msg)) > 0) { Value = Value + new String(msg, 0, len); } Toast.makeText(this, Value, Toast.LENGTH_LONG).show(); } catch(Ex..
2010.03.10 -
RelativeLayout 코딩하기
여러가지 컨트롤들이 적절하게 위치시키도록 하기 위해서는 RelativeLayout을 사용하는데, 주로 XML을 이용하여 레이아웃을 잡다가 코드 상에서 RelativeLayout을 사용해야하는 경우가 생겨서 한번 해봤다. 각각의 컨트롤마다 ID를 부여해주고 그것을 이용하여 상대적으로 레이아웃을 잡아주면 된다. RelativeLayout layout = new RelativeLayout(this); layout.setLayoutParams(new RelativeLayout.LayoutParams( LayoutParams.FILL_PARENT, LayoutParams.FILL_PARENT)); mPrevYearButton = new Button(this); layout.addView(mPrevYearButto..
2010.03.08 -
SQLite Manager에서 만든 sqlite 파일을 안드로이드 어플리케이션에서 사용하기
SQLite Manager와 같은 외부 SQLite 어플리케이션에서 생성된 DB 파일을 안드로이드용 어플리케이션에서 사용하려면 반드시 "android_metadata"라는 테이블이 존재해야 한다. SQLite Manager에서 만든 DB 파일을 사용하려니까 android_metadata 테이블이 없다면서 exception이 발생했다. 그래서 기존에 만들었던 어플리케이션에서 생성했었던 DB 파일을 살펴 보았다. 그 DB 파일에는 직접 만들었던 테이블 이외에도 android_metadata 테이블이 자동으로 생성되어 있는 것을 확인할 수 있었다. 그래서 해당 android_metadata 테이블을 복사해서 SQLite에서 만든 DB 파일에 추가해주니 문제없이 DB 파일을 사용할 수 있게 되었다.
2010.03.07 -
Date형 변수 사용 시 유의 사항!?
Date date = new Date(2010, 3, 3); date.getYear() --> 2010 date.getMonth() --> 3 date.getDay() --> 0 (!?) date.getDate() --> 3 이것 때문에 뻘짓을 하고 있었다니... getDay() 메소드는 있는데 setDay() 메소드가 없어서 getDate() 메소드를 사용해야 한다는 것을 겨우 눈치챘다. -_-;;;
2010.03.03 -
Activity 개념 이해
View는 Activity에 종속되어 있기 때문에 parent인 Activity의 맴버나 메소드 접근이 가능하지만, Activity와 Activity 간에는 이와 같은 접근이 불가능하다는 것을 이제서야 이해했다. -_-;;; 차라리 처음 부터 activity란 독립된 thread라고 설명을 했으면 금방 이해했을 것을... 따라서 다른 Activity의 데이터를 이용하려면 Activity 간에 데이터 전달이 필수적으로 필요할 수 밖에 없다. 도대체 왜 어디나 Activity의 "생명 주기"에 대해 그토록 강조했는지를 이제야 알 것 같다. 번거롭고 불편한 UI 디자인도 짜증나는데 단순한 다이얼로그를 하나 만드는데 thread를 사용할 필요까지는 없지 않나? Activity 말고 다른 방법을 쓰는 것이 정신 ..
2010.03.03