Please Enable JavaScript!
Gon[ Enable JavaScript ]

안드로이드(Android) OS 버전과 시스템정보 알아오기

안드로이드 개발
반응형

안드로이드(Android) OS 버전과 시스템정보 알아오기

 

개발환경 : window 7 64bit, Eclipse Kepler, Android 4.2.2

 

현재 테스트 하고 있는 안드로이드 OS 버전과

System.getProperty() 를 이용해 시스템정보를

알아내어 화면에 표현을 해 보겠습니다.

터미널에서 시스템 명령어를 실행하는 것과

똑 같은 효과를 얻게 됩니다.

 

/system/bin/cat

/proc/version

 

실행한 것을 화면에 표시합니다.

명령어를 실행하기 위해 ProcessBuilder 객체를

이용합니다.

 

String[] args = { "/system/bin/cat", "/proc/version" };
cmd = new ProcessBuilder(args);

Process process = cmd.start();

 

그리고 스트림으로 넘어온 값을 1024 바이트에

담아 끝까지 읽어 드립니다. 문자열로 만듭니다.

 

InputStream in = process.getInputStream();
byte[] re = new byte[1024];
while (in.read(re) != -1) {
	result = result + new String(re);
}
in.close();

 

두번째 시스템 정보를 가져오기 위해서 System.getProperties()

이용합니다. 사용자 디렉토리, Home, 이름등 인수로

정보를 넘기게 되면 시스템정보를 넘겨 받게 됩니다.

 

// system.getProperty 이용하여 시스템 정보 알아오기
sysInfo = new StringBuffer();

getProperty("os.name", "os.name", sysInfo);
getProperty("os.version", "os.version", sysInfo);

getProperty("java.vendor.url", "java.vendor.url", sysInfo);
getProperty("java.version", "java.version", sysInfo);
getProperty("java.class.path", "java.class.path", sysInfo);
getProperty("java.class.version", "java.class.version", sysInfo);
getProperty("java.vendor", "java.vendor", sysInfo);
getProperty("java.home", "java.home", sysInfo);

getProperty("user.name", "user.name", sysInfo);
getProperty("user.home", "user.home", sysInfo);
getProperty("user.dir", "user.dir", sysInfo);

 

아래는 메인 activity xml 입니다.


<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:orientation="vertical" >

    <TextView
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:autoLink="web"
        android:gravity="center_horizontal"
        android:text="mainia.tistory.com" />

    <TextView
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:text="Android OS:" />

    <TextView
        android:id="@+id/os"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content" />

</LinearLayout>

 

메인 activity 전체 소스입니다.


import java.io.IOException;
import java.io.InputStream;

import android.app.Activity;
import android.os.Bundle;
import android.widget.TextView;

public class SampleActivity4 extends Activity {

	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_sample_activity4);

		TextView txtOs = (TextView) findViewById(R.id.os);
		txtOs.setText(ReadOSinfo());
	}

	private String ReadOSinfo() {
		ProcessBuilder cmd;
		String result = "";

		try {
			String[] args = { "/system/bin/cat", "/proc/version" };
			cmd = new ProcessBuilder(args);

			Process process = cmd.start();
			InputStream in = process.getInputStream();
			byte[] re = new byte[1024];
			while (in.read(re) != -1) {
				System.out.println(new String(re));
				result = result + new String(re);
			}
			in.close();
		} catch (IOException ex) {
			ex.printStackTrace();
		}
		return result;
	}
}

 

위 소스를 실행한 결과 입니다.

콘솔에 출력하고 TextView 에 결과값을 표현한

것입니다. 리눅스 버전과 gcc 버전이 나오네요.

그리고 vender url, home 주소등 각종 시스템

정보를 알아올수 있습니다.

 

반응형
Posted by 녹두장군1
,