當前位置:首頁 » 安卓系統 » android獲取系統信息

android獲取系統信息

發布時間: 2022-10-20 06:04:19

Ⅰ Android 怎樣獲得手機信息

在Android中,想要獲取系統信息,可以調用其提供的方法System.getProperty(propertyStr),而系統信息諸如用戶根目錄(user.home)等都可以通過這個方法獲取,實現代碼如下:

java代碼:
public static StringBuffer buffer = null;
private static String initProperty(String description,String propertyStr) {
if (buffer == null) {
buffer = new StringBuffer();
}
buffer.append(description).append(":");
buffer.append (System.getProperty(propertyStr)).append(" ");
return buffer.toString();
}
private static String getSystemProperty() {
buffer = new StringBuffer();
initProperty("java.vendor.url","java.vendor.url");
initProperty("java.class.path","java.class.path");
return buffer.toString();
}

上述代碼主要是通過調用系統提供的System.getProperty方法獲取指定的系統信息,並合並成字元串返回。

1.2.2.3 運營商信息

運營商信息中包含IMEI、手機號碼等,在Android中提供了運營商管理類(TelephonyManager),可以通過TelephonyManager來獲取運營商相關的信息,實現的關鍵代碼如下:

Java代碼:
public static String fetch_tel_status(Context cx) {
String result = null;
TelephonyManager tm = (TelephonyManager) cx.getSystemService(Context.TELEPHONY_SERVICE);
String str = " ";
str += "DeviceId(IMEI) = " + tm.getDeviceId() + " ";
str += "DeviceSoftwareVersion = " + tm.getDeviceSoftwareVersion()+" ";
// TODO: Do something ...
int mcc = cx.getResources().getConfiguration().mcc;
int mnc = cx.getResources().getConfiguration().mnc;
str +="IMSI MCC (Mobile Country Code): " +String.valueOf(mcc) + " ";
str +="IMSI MNC (Mobile Network Code): " +String.valueOf(mnc) + " ";
result = str;
return result;
}在上述的代碼中,首先調用系統的getSystemService (Context.TELEPHONY_SERVICE)方法獲取一個TelephonyManager對象tm,進而調用其方法 getDeviceId()獲取DeviceId信息,調用getDeviceSoftware Version()獲取設備的軟體版本信息等。

1.2.3 查看硬體信息
1.2.3.1 獲取CPU信息

可以在手機設備的/proc/cpuinfo中獲取CPU信息,調用CMDEexecute執行系統的cat的命令,取/proc/cpuinfo的內容,顯示的就是其CPU信息,實現代碼如下:

Java代碼:

在上述的代碼中,首先調用系統的getSystemService (Context.TELEPHONY_SERVICE)方法獲取一個TelephonyManager對象tm,進而調用其方法 getDeviceId()獲取DeviceId信息,調用getDeviceSoftware Version()獲取設備的軟體版本信息等。

1.2.3 查看硬體信息
1.2.3.1 獲取CPU信息

可以在手機設備的/proc/cpuinfo中獲取CPU信息,調用CMDEexecute執行系統的cat的命令,取/proc/cpuinfo的內容,顯示的就是其CPU信息,實現代碼如下:

Java代碼:
public static String fetch_cpu_info() {
String result = null;
CMDExecute cmdexe = new CMDExecute();
try {
String[ ] args = {"/system/bin/cat", "/proc/cpuinfo"};
result = cmdexe.run(args, "/system/bin/");
Log.i("result", "result=" + result);
} catch (IOException ex) {
ex.printStackTrace();
}
return result;
}
上述代碼使用CMDExecute,調用系統中的"/system/bin/cat"命令查看"/proc/cpuinfo"中的內容,即可得到CPU信息。

Ⅱ 如何獲得android中cpu的信息

Android中如何獲得系統相關的信息(比如CPU使用率,內存的總量和已用的量)

1、查看CPU

我想大家都很關系自己的愛機的CUP到底是什麼具體信息呢.那就跟我來操縱吧.
打開超級終端,在命令行下輸入SU回車,然後在#後輸入cat /proc/cpuinfo回車.看到了吧.一串信息顯示出來了.具體如下(以本人手機為例):

# cat cpuinfo
cat cpuinfo
Processor : ARMv6-compatible processor rev 2 (v6l)
BogoMIPS : 527.15
Features : swp half thumb fastmult edsp java
CPU implementer : 0x41
CPU architecture: 6TEJ
CPU variant : 0x1
CPU part : 0xb36
CPU revision : 2
Hardware : trout
Revision : 0080
Serial : 0000000000000000

裡面的Processor 是處理器的意思.本人處理器是ARMv6兼容處理器

BogoMIPS(讀作bogumips)是Linux操作系統中衡量計算機處理器運行速度的的一種尺度,而提供這種度量的程序也被稱為BogoMips,是由Linux主要開發者linus Torvalds寫的。
本人的是527.15

2、查看內存

內存查看可以從設置--存儲卡和手機存儲--裡面會可以看到也可以下載高級任務管理器,方便你關閉程序和查詢內存

3、通過查看文件獲取設備信息

通過讀取文件/proc/meminfo的信息獲取Memory的總量。
ActivityManager. getMemoryInfo(ActivityManager.MemoryInfo)獲取當前的可用Memory量。

通過讀取文件/proc/cpuinfo系統CPU的類型等多種信息。
讀取/proc/stat 所有CPU活動的信息來計算CPU使用率

Ⅲ Android系統手機如何查看信息詳情

如您需要查看Android系統手機的詳細信息請進入信息界面—》選擇信息—》長按信息,出現快捷鍵—》選擇「查看詳情」功能(上述內容僅適用於廣東聯通用戶)

Ⅳ 在Android系統中如何查看手機相關信息

如您需要查看Android系統手機的相關信息可以依次點擊進入:設置——關於手機。在這個功能里,您可以知道手機軟體的版本信息、硬體信息、電池狀態等。(上述內容僅適用於廣東聯通用戶)

Ⅳ Android如何獲取GPGSV信息

1、獲取LOCATION_SERVICE系統服務。
2、創建Criteria對象,調用該對象的set方法設置查詢條件。
3、調用LocationManager.getBestProvider(Criteria criteria,Boolean enabledOnly)方法,傳入創建好的Criteria對象,獲取最能滿足給定標准(Criteria對象)的提供者名稱。
4、調用LocationManager.getLastKnowLocation(),傳入提供者名稱,獲取最後已知位置信息。
5、調用LocationManager.requstLocationUpdates(),添加LocationListener監聽器。

Ⅵ 如何獲取android 進程信息

1.獲取系統的可用內存和總內存。

獲取系統內存中應用的信息,需要用到ActivityManager這個類,然而當你用這個類拿數據的時候你會發現,拿到的數據不正確。用這個類的API獲取系統的總內存和可用內存會出現數據不正確的情況。除了這個類,Android手機中有文件描述了這些信息——/proc/meminfo。meminfo文件中詳細的記錄了安卓手機的一些數據,包括可用內存和總內存。附上代碼:
public static long getTotalMemSize() {
long size=0;
File file = new File("/proc/meminfo");
try {
BufferedReader buffer = new BufferedReader(new InputStreamReader(new FileInputStream(file)));
String memInfo = buffer.readLine();
int startIndex = memInfo.indexOf(":");
int endIndex = memInfo.indexOf("k");
memInfo = memInfo.substring(startIndex + 1, endIndex).trim();
size = Long.parseLong(memInfo);
size *= 1024;
buffer.close();
} catch (java.io.IOException e) {
e.printStackTrace();
}
return size;
}

public static long getAviableMemSize() {
long size=0;
File file = new File("/proc/meminfo");
try {
BufferedReader buffer = new BufferedReader(new InputStreamReader(new FileInputStream(file)));
String memInfos=new String();
int i=0;
while ((memInfos=buffer.readLine())!=null){
i++;
if (i==2){
memInfo = memInfos;
}

}
int startIndex = memInfo.indexOf(":");
int endIndex = memInfo.indexOf("k");
memInfo = memInfo.substring(startIndex + 1, endIndex).trim();
size = Long.parseLong(memInfo);
size *= 1024;
buffer.close();
} catch (java.io.IOException e) {
e.printStackTrace();
}

return size;
}

操作很簡單分別是讀取第一行的數據和第二行的數據,將字元串分去出,將所得值乘以1024變為byte類型。

2.獲取內存中運行應用的信息

首先,自然要有一個Bean文件用於存儲這些信息,之後通過ActivityManager的getRunningAppProcesses()方法得到一個RunningAppProcessInfo的List。便利這個List去除我們想要的數據,存在我們的Bean文件夾中。
public static List<TaskBean> getAllTask() {
List<TaskBean>taskList=new ArrayList<>();
List<ActivityManager.RunningAppProcessInfo>runList=UIUtils.getActManager().getRunningAppProcesses();
try {
for (ActivityManager.RunningAppProcessInfo r:runList) {
TaskBean taskBean = new TaskBean();
String processName = r.processName;
taskBean.setPackageName(processName);
PackageInfo packageInfo = UIUtils.getPacManager().getPackageInfo(processName, 0);
taskBean.setIcon(packageInfo.applicationInfo.loadIcon(UIUtils.getPacManager()));
taskBean.setName(packageInfo.applicationInfo.loadLabel(UIUtils.getPacManager()).toString());
Debug.MemoryInfo[] processInfo=UIUtils.getActManager().getProcessMemoryInfo(new int[]{r.pid});
taskBean.setMemSize(processInfo[0].getTotalPrivateDirty()*1024);
if ((packageInfo.applicationInfo.flags&ApplicationInfo.FLAG_SYSTEM)!=0){
taskBean.setSystem(true);
}else {
taskBean.setUser(true);
}
if (taskList != null) {
taskList.add(taskBean);
for (int i=0;i<taskList.size();i++) {
if (taskList.get(i).getPackageName().equals(Constants.PACKAGE_INFO)){
taskList.remove(i);
}
}
}
}
} catch (PackageManager.NameNotFoundException e) {
e.printStackTrace();
}

return taskList;
}

好了,大功告成。當你開開心心的拿到手機上調試的時候你會發現,一個數據都沒有。原來,在Android5.0之後,谷歌處於完全考慮已經棄用了通過如上方法拿到進程中的信息。那麼又應該怎麼做呢?
public static List<TaskBean> getTaskInfos() {
List<AndroidAppProcess> processInfos = ProcessManager.getRunningAppProcesses();

List<TaskBean> taskinfos = new ArrayList<TaskBean>();
// 遍歷運行的程序,並且獲取其中的信息
for (AndroidAppProcess processInfo : processInfos) {
TaskBean taskinfo = new TaskBean();
// 應用程序的包名
String packname = processInfo.name;
taskinfo.setPackageName(packname);
// 湖區應用程序的內存 信息
android.os.Debug.MemoryInfo[] memoryInfos = UIUtils.getActManager()
.getProcessMemoryInfo(new int[] { processInfo.pid });
long memsize = memoryInfos[0].getTotalPrivateDirty() * 1024L;
taskinfo.setMemSize(memsize);
taskinfo.setPackageName(processInfo.getPackageName());
try {
// 獲取應用程序信息
ApplicationInfo applicationInfo = UIUtils.getPacManager().getApplicationInfo(
packname, 0);
Drawable icon = applicationInfo.loadIcon(UIUtils.getPacManager());
taskinfo.setIcon(icon);
String name = applicationInfo.loadLabel(UIUtils.getPacManager()).toString();
taskinfo.setName(name);

if ((applicationInfo.flags & ApplicationInfo.FLAG_SYSTEM) == 0) {
// 用戶進程
taskinfo.setUser(true);
} else {
// 系統進程
taskinfo.setSystem(true);
}
} catch (PackageManager.NameNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
// 系統內核進程 沒有名稱
taskinfo.setName(packname);
Drawable icon = UIUtils.getContext().getResources().getDrawable(
R.drawable.ic_launcher);
taskinfo.setIcon(icon);
}
if (taskinfo != null) {
taskinfos.add(taskinfo);
for (int i=0;i<taskinfos.size();i++) {
if (taskinfos.get(i).getPackageName().equals(Constants.PACKAGE_INFO)){
taskinfos.remove(i);
}
}
}
}
return taskinfos;
}

好了,接下來只需要判斷安裝的版本就可以了:
int sysVersion = Integer.parseInt(Build.VERSION.SDK);
taskList = sysVersion > 21 ? TaskManagerEngine.getTaskInfos() : TaskManagerEngine.getAllTask();

好了,大功告成。數據就能正常拿到了。

Ⅶ 怎麼比較安卓系統信息

進去應用程序 , 點擊設置 ,然後關於手機 ,就有了。
我們可以從Android設備的設置中獲取一些信息。進入設備的「設置」菜單,並查看詳細了解Android系統信息的選項。這可以根據您的設備品牌和不同而有所不同。CPU-Z是類似命名的PC軟體的Android版本,可讓您查看設備的Android系統信息。它當你啟動它,你可以立即看到應用程序的深度。從單獨的第一個選項卡,我們可以看到處理器有多少個內核,它的速度,架構和GPU。大多數這些信息對大多數用戶可能不重要,但如果您需要了解您的處理器

Ⅷ Android 怎麼樣獲得應用信息

一、方法介紹:
每個Android應用程序都可以通過Context來獲取與應用程序相關的目錄,這些目錄的功能各異,每一個目錄都有自己的特點,有時候可能會搞混淆,本文結合android源碼注釋和實際操作,詳細介紹一下每個方法:
方法:getFilesDir
釋義:返回通過Context.openFileOutput()創建和存儲的文件系統的絕對路徑,應用程序文件,這些文件會在程序被卸載的時候全部刪掉。

方法:getCacheDir
釋義:返回應用程序指定的緩存目錄,這些文件在設備內存不足時會優先被刪除掉,所以存放在這里的文件是沒有任何保障的,可能會隨時丟掉。

方法:getDir
釋義:這是一個可以存放你自己應用程序自定義的文件,你可以通過該方法返回的File實例來創建或者訪問這個目錄,注意該目錄下的文件只有你自己的程序可以訪問。

方法:getExternalCacheDir
釋義:使用這個方法需要寫外部存儲的許可權「<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />」,調用該方法會返回應用程序的外部文件系統(Environment.getExternalStorageDirectory())目錄的絕對路徑,它是用來存放應用的緩存文件,它和getCacheDir目錄一樣,目錄下的文件都會在程序被卸載的時候被清除掉。

方法:getExternalFilesDir
釋義:使用這個方法需要寫外部存儲的許可權「<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />」,這個目錄是與應用程序相關的外部文件系統,它和getExternalCacheDir不一樣的是只要應用程序存在它就會一直存在,這些文件只屬於你的應用,不能被其它人訪問。同樣,這個目錄下的文件在程序被卸載時也會被一同刪除。

方法:getExternalFilesDir
釋義:和上面的方法一樣,只是返回的是其目錄下某一類型的文件,這些類型可以是: Environment#DIRECTORY_MUSIC 音樂 Environment#DIRECTORY_PODCASTS 音頻 Environment#DIRECTORY_RINGTONES 鈴聲 Environment#DIRECTORY_ALARMS 鬧鈴 Environment#DIRECTORY_NOTIFICATIONS 通知鈴聲 Environment#DIRECTORY_PICTURES 圖片 Environment#DIRECTORY_MOVIES 視頻

方法:getDatabasePath
釋義:保存通過Context.openOrCreateDatabase 創建的資料庫文件

方法:getPackageCodePath
釋義:返回android 安裝包的完整路徑,這個包是一個zip的壓縮文件,它包括應用程序的代碼和assets文件。

方法:getPackageResourcePath
釋義:返回android 安裝包的完整路徑,這個包是一個ZIP的要鎖文件,它包括應用程序的私有資源。

方法:getObbDir
釋義:返回應用程序的OBB文件目錄(如果有的話),注意如果該應用程序沒有任何OBB文件,這個目錄是不存在的。

二、測試程序:
測試代碼如下:
private StringBuilder getFilePath( ){
StringBuilder filePathBuilder = new StringBuilder( );

// 返回通過Context.openFileOutput()創建和存儲的文件系統的絕對路徑,應用程序文件,這些文件會在程序被卸載的時候全部刪掉。
filePathBuilder.append( "getFilesDir == " ).append( getFilesDir( ) ).append( "\n" );
// 返回應用程序指定的緩存目錄,這些文件在設備內存不足時會優先被刪除掉,所以存放在這里的文件是沒有任何保障的,可能會隨時丟掉。
filePathBuilder.append( "getCacheDir == " ).append( getCacheDir( ) ).append( "\n" );
// 這是一個可以存放你自己應用程序自定義的文件,你可以通過該方法返回的File實例來創建或者訪問這個目錄,注意該目錄下的文件只有你自己的程序可以訪問。
filePathBuilder.append( "getDir == " ).append( getDir("test.txt", Context.MODE_WORLD_WRITEABLE) ).append( "\n" );

/* 需要寫文件許可權 <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> */
// 調用該方法會返回應用程序的外部文件系統(Environment.getExternalStorageDirectory())目錄的絕對路徑,它是用來存放應用的緩存文件,它和getCacheDir目錄一樣,目錄下的文件都會在程序被卸載的時候被清除掉。
filePathBuilder.append( "getExternalCacheDir == " ).append( getExternalCacheDir( ) ).append( "\n" );
// 這個目錄是與應用程序相關的外部文件系統,它和getExternalCacheDir不一樣的是只要應用程序存在它就會一直存在,這些文件只屬於你的應用,不能被其它人訪問。同樣,這個目錄下的文件在程序被卸載時也會被一同刪除。
filePathBuilder.append( "getExternalFilesDir == " ).append( getExternalFilesDir( "/" ) ).append( "\n" );

/**
* 和上面的方法一樣,只是返回的是其目錄下某一類型的文件,這些類型可以是:
* Environment#DIRECTORY_MUSIC 音樂
* Environment#DIRECTORY_PODCASTS 音頻
* Environment#DIRECTORY_RINGTONES 鈴聲
* Environment#DIRECTORY_ALARMS 鬧鈴
* Environment#DIRECTORY_NOTIFICATIONS 通知鈴聲
* Environment#DIRECTORY_PICTURES 圖片
* Environment#DIRECTORY_MOVIES 視頻
*
* */
filePathBuilder.append( "getExternalFilesDir == " ).append( getExternalFilesDir( Environment.DIRECTORY_PICTURES ) ).append( "\n" );

// 保存通過Context.openOrCreateDatabase 創建的資料庫文件
filePathBuilder.append( "getDatabasePath == " ).append( getDatabasePath( DATA_BASE_NAME ) ).append( "\n" );
// 返回android 安裝包的完整路徑,這個包是一個zip的壓縮文件,它包括應用程序的代碼和assets文件
filePathBuilder.append( "getPackageCodePath == " ).append( getPackageCodePath( ) ).append( "\n" );
// 返回android 安裝包的完整路徑,這個包是一個ZIP的要鎖文件,它包括應用程序的私有資源。
filePathBuilder.append( "getPackageResourcePath == " ).append( getPackageResourcePath( ) ).append( "\n" );
// 返回應用程序的OBB文件目錄(如果有的話),注意如果該應用程序沒有任何OBB文件,這個目錄是不存在的。
filePathBuilder.append( "getObbDir == " ).append( getObbDir( ) ).append( "\n" );

return filePathBuilder;
}

Ⅸ android開發應用中,如何獲取系統自帶日歷的日程事件信息

找到日程事件信息的保存位置,自己去讀取

Ⅹ 如何獲取android 進程信息

如何獲取android 進程信息,有需要的朋友可以參考下。

有時候為了完成某些功能比如監測某些程序的運行情況,我們可以通過動態的獲取android 進程信息:
1)首先我們定義下進程信息的model:

public class ProcessInfo {
private int pid; // 進程id
private int uid; // 進程所在的用戶id
private int memSize; //進程佔用的內存,kb
private String processName; // 進程名
public String pkgnameList[] ;//運行在進程里的對應的所有程序的包名
public int getPid() {
return this.pid;
}

public void setPid(int pid) {
this.pid = pid;
}

public int getUid() {
return this.uid;
}

public void setUid(int uid) {
this.uid = uid;
}

public int getMemSize() {
return this.memSize;
}

public void setMemSize(int memSize) {
this.memSize = memSize;
}

public String getProcessName() {
return this.processName;
}

public void setPocessName(String processName) {
this.processName = processName;
}
}

其次,我們通過android API 獲取進程信息:
// 獲得系統進程信息

private ArrayList<ProcessInfo> getRunningAppProcessInfo(){
ActivityManager mActivityManager = (ActivityManager) getSystemService(Context.ACTIVITY_SERVICE);
ArrayList<ProcessInfo> processInfoList = new ArrayList<ProcessInfo>();
List<ActivityManager.RunningAppProcessInfo> appProcessList = mActivityManager.getRunningAppProcesses();
for (ActivityManager.RunningAppProcessInfo appProcessInfo : appProcessList) {
int pid = appProcessInfo.pid;
int uid = appProcessInfo.uid;
String processName = appProcessInfo.processName;
int[] myMempid = new int[] { pid };
Debug.MemoryInfo[] memoryInfo = mActivityManager.gegetProcessMemoryInfo(myMempid);
//kb
int memSize = memoryInfo[0].dalvikPrivateDirty;
ProcessInfo processInfo = new ProcessInfo();
processInfo.setPid(pid);
processInfo.setUid(uid);
processInfo.setMemSize(memSize);
processInfo.setPocessName(processName);
processInfo.pkgnameList = appProcessInfo.pkgList ;
processInfoList.add(processInfo);
return processInfoList;
}

//判斷某進程是否存在

private boolean isProcessExisting(String packageName){
ArrayList<ProcessInfo> processInfoList = getRunningAppProcessInfo();
for(ProcessInfo process : processInfoList){
String[] packageList = process.pkgnameList;
for (String pkg : packageList) {
if(pkg.equals(packageName)){
return true;
}
}
}
return false;
}

熱點內容
抖音如何登錄安卓 發布:2025-01-29 10:11:51 瀏覽:73
mysqljson存儲類型 發布:2025-01-29 10:11:48 瀏覽:517
如何更改學籍密碼 發布:2025-01-29 10:07:43 瀏覽:382
編譯語言分 發布:2025-01-29 10:07:31 瀏覽:358
linux查看ftp的配置 發布:2025-01-29 10:03:30 瀏覽:515
如何卸載快速存儲技術 發布:2025-01-29 10:03:30 瀏覽:501
androiddes解密 發布:2025-01-29 09:46:19 瀏覽:362
電腦怎麼改dns伺服器 發布:2025-01-29 09:45:05 瀏覽:630
揚州市書房wifi密碼是多少 發布:2025-01-29 09:42:21 瀏覽:741
csql返回 發布:2025-01-29 09:42:18 瀏覽:489