`
landyer
  • 浏览: 139043 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

android系统参数的读取

 
阅读更多

1.手机信息查看助手可行性分析 
开始进入编写程序前,需要对需求的功能做一些可行性分析,以做到有的放矢,如果有些无法实现的功能,可以尽快调整。 
这里分析一下项目需要的功能,主要是信息查看和信息收集,如版本信息、硬件信息等,这些都可以通过读取系统文件或者运行系统命令获取,而像获取安装的软件信息和运行时信息则需要通过API提供的接口获取。实现API接口不是什么问题,主要把精力集中在如何实现运行系统命令,获取其返回的结果功能实现上。具体实现代码如下所示: 
public class CMDExecute { 

public synchronized String run ( String [] cmd,String workdirectory) 
throws IOException { 
String result = “ ” ; 

try { 
processBuilder builder = new ProcessBuilder ( cmd ); 
//设置一个路径 
if ( workdirectory ! = null ) 
builder.directory ( new File ( workdirectory ) ) ; 
builder.redirectErrorStream (true) ; 
Process process = builder.start ( ) ; 
InputStream in = process.getInputStream ( ) ; 
byte[] re = new byte[1024] ; 
while ( in.read ( re ) ) ; 
result = result + new String ( re ) ; 

in.close ( ) ; 

} catch ( Exception ex ) { 
Ex.printStackTrace ( ) ; 

Return result ; 



1.2手机信息查看助手功能实现 
1.2.1手机信息查看助手主界面 
按照预设的规划,将4类信息的查看入口放在主界面上,其布局文件为mail.xml,基本上是用一个列表组件组成的,实现代码如下所示: 
<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
android:/orientation="vertical" android:layout_width="fill_parent" 
android:layout_height="fill_parent"> 

<ListView 
android:layout_width="fill_parent" 
android:layout_height="fill_parent" 
android:id="@+id/itemlist" /> 
</LinearLayout> 
在这里mail.xml中使用的是LinearLayout布局,其中放置了一个ListView组件。 

1.2.2查看系统信息实现 
当在运行的主界面单击第一行时,也就是“系统信息”这一行,将执行代码如下: 
case 0; 
intent.setClass(eoeInfosAssistant.this, System.class); 
startActivity(intent); 
break; 
代码运行后将显示系统(System)这个界面,这就是查看系统信息的主界面,其和主界面差不多,也就是列表显示几个需要查看的系统信息, 

1.2.2.1操作系统版本 
单击图9所示的界面第一行“操作系统版本”项,则会打开一个新的界面,其对应的是ShowInfo.java文件,然后需要显示该设备的操作系统版本信息,而这个信息在/proc/version中有,可以直接调用。在可行性分析中给出的CMDExencute类来调用系统的cat命令获取该文件的内容,实现代码如下: 
Public static String fetch_version_info( ) { 
String result = null; 
CMDExecute cmdexe = new CMDExecute ( ); 
Try { 
String[ ] args = {"/system/bin/cat", "/proc/version" }; 
result = cmdexe.run(args, "system/bin/"); 
} catch (IOException ex) { 
ex.printStackTrace( ); 

Return result; 

上述代码使用的是CMDExecute类,调用系统的“"/system/bin/cat"”工具,获取“"/proc/version"”中内容。其运行效果如图9。从图中显示的查寻结果可以看到,这个设备的系统版本是Linux version 2.6.25-018430-gfea26b0。 

1.2.2.2系统信息 
在Android中,想要获取系统信息,可以调用其提供的方法System.getProperty(propertyStr),而系统信息诸如用户根目录(user.home)等都可以通过这个方法获取,实现代码如下: 
private static String initProperty(String description,String propertyStr) { 
if (buffer == null) { 
buffer = new StringBuffer(); 

buffer.append(description).append(":"); 
buffer.append (System.getProperty(propertyStr)).append("\n"); 
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来获取运营商相关的信息,实现的关键代码如下: 
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.getDetDeviceId() + "\n"; 
str += "DeviceSoftwareVersion = " + tm.getDeviceSoftwareVersion()+"\n"; 
. . . 
int mcc = cx.getResources().getConfiguration().mcc; 
int mcc = cx.getResources().getConfiguration().mcc; 
str +="IMSI MCC (Mobile Country Code): " +String.valueOf(mcc) + "\n"; 
str +="IMSI MCC (Mobile Country Code): " +String.valueOf(mnc) + "\n"; 
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信息,实现代码如下: 
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信息。 

1.2.3.2获取内存信息 
获取内存信息的方法和获取CPU信息的实现差不多,可以读取/proc/meminfo信息,另外还可以通过getSystemService(Context.ACTIVIT_SERV- 
ICE)获取ActivityManager.MemoryInfo对象,进而获取可用内存信息,主要代码如下: 
/** 
*系统内存情况查看 
*/ 
public static String getMemoryInfo(Context context) { 
StringBuffer memoryInfo = new StringBuffer(); 
final ActivityManager activityManager = (AcctivityManager) context 
.getSystemService(Context.ACTIVITY_SERVICE); 
ActivityManager. MemoryInfo outInfo = new ActivityManager. MemoryInfo(); 
activityManager.getMemoryInfo(outInfo); 
memoryInfo.append("\nTotal Available Memory :").append( 
outInfo.availMem >> 10).append("k"); 
memoryInfo.append("\nTotal Available Memory :").append( 
outInfo.availMem >> 20).append("k"); 
memoryInfo.append("\nIn low memory situation:").append( 
outInfo. Lowmemory); 
String result = null; 
CMDExecute cmdexe = new CMDExecute(); 
try { 
String[ ] args = { "/system/bin/cat", "/proc/meminfo" }; 
result = cmdexe.run(args, "/system/bin/"); 
} catch (IOException ex) { 
Log.i("fetch_process_info","ex=" + ex.toString()); 

Return memoryInfo.toString()+"\n\n"+result; 

上述代码中首先通过ActivityManager对象获取其可用的内存,然后通过查看“/proc/meminfo”内容获取更详细的信息。 

1.2.3.3获取磁盘信息 
手机设备的磁盘信息可以通过df命令获取,所以,这里获取磁盘信息的方法和前面类似,惟一不同的是,这个是直接执行命令,获取其命令的返回就可以了,关键代码如下: 
//磁盘信息 
public static String fetch_disk_info() { 
String result = null; 
CMDExecute cmdexe = new CMDExecute(); 
try { 
String[ ] args = { "/system/bin/df"} 
result = cmdexe.run(args, "/system/bin/"); 
Log.i("result","result=" + result); 
} catch (IOException ex) { 
ex.printStackTrace(); 

return result; 


1.2.3.4获取网络信息 
要获取手机设备的网络信息,只要读取/system/bin/netcfg中的信息就可以了,关键代码如下: 
public static String fetch_netcfg_info() { 
String result = null; 
String result = null; 
CMDExecute cmdexe = new CMDExecute(); 
try { 
String[ ] args = { "/system/bin/netcfg"} 
result = cmdexe.run(args, "/system/bin/"); 
} catch (IOException ex) { 
Log.i("fetch_process_info","ex=" + ex.toString()); 

return result; 


1.2.3.5获取显示频信息 
除了显示手机的CPU、内存、磁盘信息外,还有个非常重要的硬件,显示频。在Android中,它提供了DisplayMetrics类,可以通过getApplication Context()、getResources()、getDisplayMetrics()初始化,进而读取其屏幕宽(widthPixels)、高(heightPixels)等信息,实现的关键代码如下: 
public static String getDisplayMetrics(Context cx) { 
String str = " "; 
DisplayMetrics dm = new DisplayMetrics(); 
dm = cx.getApplicationContext().getResources().getDisplayMetrics(); 
int screenWidth = dm.widthPixels; 
int screenHeight = dm.heightPixels; 
float density = dm.density; 
float xdpi = dm.xdpi; 
float ydpi = dm.ydpi; 
str += "The absolute width: " + String.valueOf(screenWidth) + "pixels\n"; 
str += "The absolute heightin: " + String.valueOf(screenHeight) + "pixels\n"; 
str += "The logical density of the display. : " + String.valueOf(density) + "\n"; 
str += "X dimension : " + String.valueOf(xdpi) +"pixels per inch\n"; 
str += "Y dimension : " + String.valueOf(ydpi) +"pixels per inch\n"; 
renturn str; 


1.2.4查看软件信息 
在Android上,可以在手机上随便安装自己喜欢的应用软件,查看软件信息的功能就是收集并显示已经安装的应用软件信息。 
在Android中,它提供了getPackageManager()、getInstalledApplications(0)方法,可以直接返回全部已经安装的应用列表。这个功能就是只需要获取列表,再进行显示在列表中就可以了。但是,如果安装的软件比较多,那么获取信息所花费的时间会比较多,为了更好地完善用户使用的体验,在获取列表时,需要在界面提示用户耐心等待,这就需要用到Android提供的另外一个功能Runnable。 
引入Runnable比较简单,只需要在定义类的时候实现Runnable接口就可以了,所以,这里的软件信息查看界面对应的Software.java类声明代码如下: 
public class Software extends Activity implements Runnable { 
. . . 

然后需要在这个Activity启动的时候,引入进度条ProgressDialog来显示一个提示界面,onCreate代码如下所示: 
Public void onCreate(Bundle icicle) { 
Super.onCreate(icicle); 
setContentView(R.layout.softwares); 
setTitle("软件信息") 
itemlist = (ListView) findViewById(R.id.itemlist); 
pd = ProgressDialog.show(this, "请稍候. .", "正在收集你已经安装的软件信息. . .", true,flase); 
Thread thread = new Thread(this); 
Thread.start(); 

该方法创建了一个ProgressDialog,并设定其提示信息。然后实现其线程的run()方法,该方法实现其真正执行的逻辑,实现代码如下: 
@Override 
Public void run() { 
fetch_installed_apps(); 
handler.sendEmptyMessage(0); 

上述代码调用自定义的fetch_installed_app()方法获取已经安装的应用信息,这个方法是比较消耗时间的,实现代码如下: 
public List fetch_installed_apps () { 
List<ApplicationInfo> packages = getPackageManager().getInstalledApplications(0); 
list = new ArrayList<Ma<String, Object>>( 
packages.size()); 
Iterator<ApplicationInfo> l = packages.iterator(); 
while (l.hasNext()) { 
Map<String, Object> map = new HashMap<String, Object>(); 
ApplicationInfo app = (ApplicationInfo) l.next(); 
String packageName = app.packageName; 
String label = " "; 
try { 
label = getPackageManager().getApplicationLabel(app).toString(); 
} catch (Exception e) { 
Log.i("Exception", e.toString()); 

map = new HashMap<String, Object>(); 
map.put("name", label); 
map.put("desc", packageName); 
list.add(map); 

Return list; 

上述代码使用getPackageManager().getInstalledApplications(0)获取已经安装的软件信息,进而构造用来显示的列表(List)对象,同时,界面通过进度条(ProgressDialog)显示提示信息,运行效果如图18所示。 
当这个方法运行完成后,会调用handler.sendEmptyMessage(0)语句给handler发送一个通知消息,使其执行下面的动作,下面就是这个handler的实现方法: 
private Handler handler = new Handler() { 
public void handleMessage msg) { 
refreshListItems(); 
pd.dismiss(); 
};   } 
上述代码中,当其接收到run()线程传递的消失后,先调用refreshListItems()方法显示列表,最后调用进度条ProgressDialog的dismiss方法使其等待提示消失。而refreshListItems()的实现代码如下: 
private void refreshListItems() { 
list = fetch_installed_apps(); 
SimpleAdapter notes = new SimpleAdater(this, list, R.layout.info_row, 
New String[ ] { "name", "desc" },new int[ ] { R.id.name, 
R.id.desc }); 
Itemlist.setAdapter(notes); 
setTitle("软件信息,已经安装"+list.size()+"款应用."); 

这些代码,显示已经安装的应用列表的同时,在Title上显示一共安装了多少款应用 

1.2.5获取运行时信息 
运行时的一些信息,包括后台运行的Service、Task,以及进程信息,其运行界面如图20。 
1.2.5.1获取正在运行的Service信息 
可以通过调用context.getSystemService(Context.ACTIVITY_SERVICE)获取ActivityManager,进而通过系统提供的方法getRunningServices(int maxNum)获取正在运行的服务列表(RunningServiceInfo),再对其结果进一步分析,得到服务对应的进程名及其他信息,实现的关键代码如下: 
//正在运行的服务列表 
public static String getRunningServicesInfo(Context context) { 
StringBuffer serviceInfo = new StringBuffer(); 
final ActivityManager activityManager = (ActivityManager) context 
.getSystemService(Context. ACTIVITY_SERVICE); 
List<RunningServiceInfo> services = activityManager.getRunningServices(100); 

Iterator<RunningserviceInfo> l = services.iterator(); 
while (l.hasNext()) { 
RunningServiceInfo si = (RunningServiceInfo) l.next(); 
serviceInfo.append("pid: ").append(si.pid); 
serviceInfo.append("\nprocess: ").append(si. process); 
serviceInfo.append("\nservice: ").append(si. service); 
serviceInfo.append("\ncrashCount: ").append(si. crashCount); 
serviceInfo.append("\nclicentCount: ").append(si. clicentCount); 
serviceInfo.append("\nactiveSince:").append(ToolHelper.formatData(si.activeSince)); 
serviceInfo.append("\nlastActivityTime: ").append(ToolHelper.formatData(si.lastAct- 
ivityTime)); 
serviceInfo.append("\n\n "); 

return serviceInfo.toString(); 

上述代码调用activityManager.getRunningServices(100)获取正在运行的服务,并依次遍历得到每个服务对应的pid,进程等信息, 

1.2.5.2获取正在运行的Task信息 
获取正在运行的Task信息调用的是activityManager.getRunningTasks(int maxNum)来获取对应的正在运行的任务信息列表(RunningTaskInfo),进而分析、显示任务信息,其关键代码如下: 
public static String getRunningTaskInfo(Context context) { 
StringBuffer sInfo = new StringBuffer(); 
final ActivityManager activityManager = (ActivityManager) context 
.getSystemService(Context. ACTIVITY_SERVICE); 
List<RunningTaskInfo> tasks = activityManager.getRunningTasks(100); 
Iterator<RunningTaskInfo> l = tasks.iterator(); 
while (l.hasNext()) { 
RunningTaskInfo ti = (RunningTaskInfo) l.next(); 
sInfo.append("id: ").append(ti.id); 
sInfo.append("\nbaseActivity: ").append(ti. baseActivity.flattenToString()); 
sInfo.append("\nnumActivities: ").append(ti. nnumActivities); 
sInfo.append("\nnumRunning: ").append(ti. numRunning); 
sInfo.append("\ndescription: ").append(ti. description); 
sInfo.append("\n\n); 

Return sInfo.toString(); 

上述代码调用系统提供的activityManager.getRunningTasks(100)方法获取任务列表,依次获取对应的id等信息,运行效果如图22。从图中显示可以看出,获取手机上正在运行的Task的列表和其对应的进程信息,这对用户了解设备运行情况非常有用。 
1.2.5.3获取正在运行的进程信息 
该段程序是通过CMD Executo的方式来运行系统命令。关键代码如下: 
public static String fetch_process_info() { 
Log.i("fetch_process_info","start. . . . "); 
String result = null; 
CMDExecutr cmdexe = new CMDExecute(); 
try { 
String [ ] args = { "/system/bin/top", "-n", "l" }; 
result = cmdexe.run(args, "/system/bin/"); 
} catch (IOException ex) { 
Log.i("fetch_process_info","ex=" + ex.toString()); 

return result; 

通过这个功能可以非常详细地了解到正在运行的进程和各个进程所消耗的资源情况。 

1.2.6文件浏览器 
文件浏览器的这个功能,用户可以遍历浏览整个文件系统,以便更好地了解手机设备状况。在主界面单击最后一行将执行下列代码: 
case 4: 
intent.setClass(eoeInfosAssistant.this, FSExplorer.class); 
startActivity(intent); 
break; 
对于如何进入子目录,并获取和显示其内部的文件夹和文件,也就是单击每行时响应的实现,代码如下: 
@Override 
public void onItemClick(AdapterView<?> parent, View v, int position, long id) { 
Log.i(TAG, "item clicked! [" + position + "]"); 
if (position == 0) { 
path = "/"; 
refreshListItems(path); 
}else if(position ==1) { 
goToParent(); 
} else { 
path = (String) list.get(position).get("path"); 
File file = new File(path); 
if (file.isDirectory()) 
refreshListItems(path); 
else 
Toast.makeText(FSExplorer.this, 
getString(R.string.is_file)’ 
Toast.LENGTH_SHORT).show(); 



2. Android编程获取手机型号,網絡類型,本机电话号码,sdk版本及firmware版本号(即系统版本号) 

Android开发平台中,可通过TelephonyManager获取本机号码。 

TelephonyManager phoneMgr=(TelephonyManager)this.getSystemService(Context.TELEPHONY_SERVICE); 
txtPhoneNumber.setText(phoneMgr.getLine1Number()); //txtPhoneNumber是一个EditText 用于显示手机号
 

注: 

根据Android的安全机制,在使用TelephonyManager时,必须在AndroidManifest.xml中添加<uses-permission android:name="READ_PHONE_STATE" /> 否则无法获得系统的许可。 

private void loadPhoneStatus() 

TelephonyManager phoneMgr=(TelephonyManager)this.getSystemService(Context.TELEPHONY_SERVICE);
 

int mNetworkType = mManager.getNetworkType();//獲取網絡類型 
txtPhoneModel.setText(Build.MODEL); //手机型号 
txtPhoneNumber.setText(phoneMgr.getLine1Number());//本机电话号码 
txtSdkVersion.setText(Build.VERSION.SDK);//SDK版本号 
txtOsVersion.setText(Build.VERSION.RELEASE);//Firmware/OS 版本号 
}
 

Build能向我们提供包括 硬件厂商,硬件编号,序列号等很多信息 调用方法也都同上. 

3. 得到系統的一些相關的屬性,通過調用  System.getProperties(); 來獲取 

02-09 02:24:55.863: INFO/Tag(661): System Property:  {java.vm.version=1.2.0 
02-09 02:24:55.863: INFO/Tag(661): System Property:   java.vendor.url=http://www.android.com/ 
02-09 02:24:55.863: INFO/Tag(661): System Property:   java.vm.vendor.url=http://www.android.com/ 
02-09 02:24:55.863: INFO/Tag(661): System Property:   user.dir=/ 
02-09 02:24:55.872: INFO/Tag(661): System Property:   java.vm.name=Dalvik 
02-09 02:24:55.872: INFO/Tag(661): System Property:   java.home=/system 
02-09 02:24:55.872: INFO/Tag(661): System Property:   user.region=US 
02-09 02:24:55.872: INFO/Tag(661): System Property:   javax.net.ssl.trustStore=/system/etc/security/cacerts.bks 
02-09 02:24:55.872: INFO/Tag(661): System Property:   java.runtime.name=Android Runtime 
02-09 02:24:55.882: INFO/Tag(661): System Property:   user.home= 
02-09 02:24:55.882: INFO/Tag(661): System Property:   java.io.tmpdir=/sdcard 
02-09 02:24:55.882: INFO/Tag(661): System Property:   http.agent=Dalvik/1.2.0 (Linux; U; Android 2.2; google_sdk Build/FRF91) 
02-09 02:24:55.882: INFO/Tag(661): System Property:   java.net.preferIPv6Addresses=true 
02-09 02:24:55.882: INFO/Tag(661): System Property:   java.version=0 
02-09 02:24:55.882: INFO/Tag(661): System Property:   java.boot.class.path=/system/framework/core.jar:/system/framework/ext.jar:/system/framework/framework.jar:/system/framework/android.policy.jar:/system/framework/services.jar 
02-09 02:24:55.882: INFO/Tag(661): System Property:   java.library.path=/system/lib 
02-09 02:24:55.882: INFO/Tag(661): System Property:   file.separator=/ 
02-09 02:24:55.882: INFO/Tag(661): System Property:   java.specification.vendor=The Android Project 
02-09 02:24:55.894: INFO/Tag(661): System Property:   file.encoding=UTF-8 
02-09 02:24:55.894: INFO/Tag(661): System Property:   line.separator= 
02-09 02:24:55.894: INFO/Tag(661): System Property:   java.vm.specification.version=0.9 
02-09 02:24:55.894: INFO/Tag(661): System Property:   java.vm.specification.vendor=The Android Project 
02-09 02:24:55.894: INFO/Tag(661): System Property:   os.name=Linux 
02-09 02:24:55.894: INFO/Tag(661): System Property:   java.vm.vendor=The Android Project 
02-09 02:24:55.894: INFO/Tag(661): System Property:   path.separator=: 
02-09 02:24:55.904: INFO/Tag(661): System Property:   android.vm.dexfile=true 
02-09 02:24:55.904: INFO/Tag(661): System Property:   java.ext.dirs= 
02-09 02:24:55.904: INFO/Tag(661): System Property:   java.class.path=. 
02-09 02:24:55.904: INFO/Tag(661): System Property:   os.version=2.6.29-00261-g0097074-dirty 
02-09 02:24:55.904: INFO/Tag(661): System Property:   java.specification.name=Dalvik Core Library 
02-09 02:24:55.904: INFO/Tag(661): System Property:   java.compiler= 
02-09 02:24:55.913: INFO/Tag(661): System Property:   user.language=en 
02-09 02:24:55.913: INFO/Tag(661): System Property:   user.name= 
02-09 02:24:55.913: INFO/Tag(661): System Property:   os.arch=armv5tejl 
02-09 02:24:55.913: INFO/Tag(661): System Property:   java.runtime.version=0.9 
02-09 02:24:55.913: INFO/Tag(661): System Property:   java.class.version=46.0 
02-09 02:24:55.913: INFO/Tag(661): System Property:   java.vendor=The Android Project 
02-09 02:24:55.923: INFO/Tag(661): System Property:   java.vm.specification.name=Dalvik Virtual Machine Specification 
02-09 02:24:55.923: INFO/Tag(661): System Property:   java.specification.version=0.9} 
4.  得到鍵盤信息,使用的語言,手機的網絡代碼(mnc),手機的國家代碼(mcc),手機的模式,手機的方向,觸摸屏的判斷等,通過以下語句獲取:      Configuration config = getResources().getConfiguration();

這些屬性都在config的屬性變量中進行判斷。 

分享到:
评论

相关推荐

    android读取系统参数工程

    android读取系统参数工程 android读取系统参数工程 android读取系统参数工程

    读取cache信息 android系统 三星Nexus S

    这是用户程序,内核相应的驱动另外传上来。C语言编写的一个小程序,运行会读取机器上cache架构以及每个层次cache的大小,参数等等。

    android开发串口,修改串口为非阻塞模式

    最近用android_serialport_api开发了一个串口通讯程序,在使用过程中发现android_serialport_api基本构架都有 ,不过还有不少的缺陷,缺陷之一是:读取串口信息是阻塞模式,在向串口发出命令后,如果没返回的话,...

    android Parcelable

    在Android开发过程中,经常要在Activity之间传递参数,使用Android系统提供的方法可以传递基本数据类型的变量,但有时候我们经常要传递一些复杂的数据类型或自定义的类,这种情况的参数无法直接传递,我们可以通过...

    Android的编译系统

     初始化相关的参数设置(buildspec.mk、envsetup.mk、config.mk)  检测编译环境和目标环境  决定目标product  读取product的配置信息及目标平台信息  清除输出目录  检查版本号  读取Board的配置  ...

    Android静默安装常用工具类

    Android系统下载管理DownloadManager增强方法,可用于包括获取下载相关信息,如: getStatusById(long) 得到下载状态 getDownloadBytes(long) 得到下载进度信息 getBytesAndStatus(long) 得到下载进度信息和状态 ...

    i2c-rw: Android下的i2c设备调试工具

    Android下的i2c设备调试工具, 可读写系统中的I2C设备,有多个参数控制读写方式

    android与WIFI模块的数据传输 数据透传

    应公司要求开发了一个androidAPP主要用来对WIFI模块进行一些参数的配置。主要包括WIFI模块的数据读取,配置参数的下发,系统时间的下发。WIFI模块用的是HLK-RM04

    展讯工程模式说明书(Android 7.0).pdf

    工程模式(EngineerMode,简写为EngMode),工程师用来调试底层硬件的各项参数的工具,通过暗码的方式进入,完成对电话相关参数的设置、网络相关的设置、调试手段的设置、系统信息的读取等;它不依赖于上层,可以在...

    新版Android开发教程.rar

    这一联盟将会支持 Google 发布的 Android 手机操作系统或者应用软件,共同开发名为 Android 的 开 放源代码的移动系统。开放手机联盟包括手机制造商、手机芯片厂商和移动运营商几类。目前,联盟成员 数 量已经达到了...

    android开发入门与实战(下)

    8.5.2 使用ContentProvider读取系统数据 8.5.3 使用ContentProvider操作数据日记本实例 8.6 再学一招——网络存储 8.7 本章小结 第9章 我来“广播”你的“意图”——Intent和Broadcast面对面 9.1 Android应用程序的...

    Python获取android设备cpu和内存占用情况

    cpu获取代码如下:(输入参数为脚本执行时间) # coding:utf-8 ''' 获取系统total cpu ''' import os, csv import time import csv import numpy as np from matplotlib import pyplot as plt cpu_list = [] time_...

    智能交互触控一体机参数.docx

    26.Android系统和Windows系统下,支持通过任何一个前置USB接口读取外接移动存储设备。 27.外接电脑设备通过HDMI线投送画面至整机时,再连接TypeB USB线至整机触控输出接口,即可直接调用整机内置的摄像头、麦克风、...

    安卓java读取网页源码-android-blocked-upload:安卓大文件/多文件断点续传示例工具,核心使用RandomAccessF

    安卓java读取网页源码 android-blocked-upload 安卓文件上传工具,公司内部需要使用文件上传,在github上搜索了一圈没有合适的,因此自己设计开发了此代码,清洗掉公司相关的信息后放到这里 实现原理: 使用java 的 ...

    《Google Android开发入门与实战》.pdf

    8.5.2 使用contentprovider读取系统数据 156 8.5.3 使用contentprovider操作数据日记本实例 159 8.6 再学一招——网络存储 171 8.7 本章小结 173 第9章 我来“广播”你的“意图”——intent和broadcast...

    android开发入门与实战(上)

    8.5.2 使用ContentProvider读取系统数据 8.5.3 使用ContentProvider操作数据日记本实例 8.6 再学一招——网络存储 8.7 本章小结 第9章 我来“广播”你的“意图”——Intent和Broadcast面对面 9.1 Android应用程序的...

    《Google Android SDK开发范例大全(第3版)》.pdf

     全书共分11章,主要以范例集的方式来讲述android的知识点,详细介绍了开发android的人机交互界面、android常用的开发控件、android手机收发短信等通信服务、开发android手机的自动服务功能和娱乐多媒体功能以及...

    Android源码铃声汇总

    通过读取preference.xml文件,intent传个参数进去intent.putExtra(RingtoneManager.EXTRA_RINGTONE_EXISTING_URI, phoneUri);打开对话框的时候就默认选中上次被选中的音乐。程序流程:在onCreate()方法中加入...

Global site tag (gtag.js) - Google Analytics