黑马程序员android managerlayout系统相关_第1页
黑马程序员android managerlayout系统相关_第2页
黑马程序员android managerlayout系统相关_第3页
黑马程序员android managerlayout系统相关_第4页
黑马程序员android managerlayout系统相关_第5页
已阅读5页,还剩11页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

Manager相ManagerprivateStringgetAppVersion()PackageManagerpm=this.getPackageManager();try{//PackageInfo封装 PackageInfopInfo=pm.getPackageInfo(this.getPackageName(),return}catch(NameNotFoundExceptione){ //can'treach}return} 文件中,可通过设置Activity的意图过滤,来添加快捷图标,如果为多个Activity加个了下面的配置,就会产生多个快捷图标)publicvoidtestGetLauncherActivity()throwsExceptionpublicvoidtestGetLauncherActivity()throwsException//根据意图过滤器,来获取所有的快捷图PackageManagerpm=getContext().getPackageManager();Intentintent=newIntent();List<ResolveInfo>resolves=pm.queryIntentActivities(intent,for(ResolveInforeso:resolves){}}List<PackageInfo>packs=pm.getInstalledPackages(0);List<ApplicationInfo>apps=pm.getInstalledApplications(0);//全 //全部应用程序中的信List<PackageInfo>packs=pm.getInstalledPackages(0);List<ApplicationInfo>apps=pm.getInstalledApplications(0);//全 //全部应用程序中的信示例:获取中安装的所有应用信息publicclassAppInfo{privatepublicclassAppInfo{privateDrawableicon;privateStringappName;privateStringpackName;privatebooleaninRom;privatebooleanuserApp;//图//程序名//包//是否安装在 中//用户安装/系统自获取方法publicpublicstaticList<AppInfo>getAppInfos(Contextcontext){List<AppInfo>list=newArrayList<AppInfo>();AppInfoappInfo=null;PackageManagerpm=//获取安装的所有程序的 List<PackageInfo>packs=for(PackageInfopackInfo:packs)ApplicationInfoapplicationInfo //应用appInfo=newAppInfo(); //程序 intflags=if((flags&ApplicationInfo.FLAG_SYSTEM)!=0){}else//系统程序//用户程序}if((flags&ApplicationInfo.FLAG_EXTERNAL_STORAGE)!=0)}else}}return}*开启应用selectedAppInfo为应用程序信息,即上面的AppInfoprivatevoidstartApplication()//开启某一个应用程序里面的第一个//获取这个应用程序 文件.tryPackageInfopackageInfo=ActivityInfo[]activities=packageInfo.activities;if(activities!=null&&activities.length>0){ActivityInfoactivityInfo=activities[0];//第一个ActivityIntentintent=newIntent();intent.setClassName(activityInfo.packageName,activityI);}else}}catch(NameNotFoundExceptione){}}*卸载应用,使用隐式意图来启动卸载应用,来卸载<暂不支持卸载系统的应*卸载应用,使用隐式意图来启动卸载应用,来卸载<暂不支持卸载系统的应用privatevoiduninstallApplication()//<actionandroid:name="ent.action.VIEW"//<dataandroid:scheme="package"/>Intentintent=newIntent();1.这里的package不要加//,因为它不是一个路径,<data/>没有host属性,类似还 //2.有host属性,需要加入//,表示路径intent.setData(Uri.parse("packageselectedAppInfo.getPackName()));startActivityForResult(intent,0);}*@param@parampublicstaticintgetRunningProcessCount(Contextcontext){ActivityManagerac=(ActivityManager)List<RunningAppProcessInfo>processes=ac.getRunningAppProcesses();returnprocesses.size();}@param@returnpublicstaticMemoryInfogetMemoryInfo(Contextcontext){ActivityManagerac=(ActivityManager)MemoryInfooutInfo=newMemoryInfo();return}通 publicstaticlonggetTotalRAM()longsize=tryFilefile=newFile("/proc/meminfo");FileInputStreamfis=newFileInputStream(file);BufferedReaderbr=newBufferedReader(new//MemTotal:513000kBString字 Stringline=PatterntPattern= MatcherpMatcher=tPattern.matcher(line);if(pMatcher.find()){size=}}catch(Exceptione){size=0;}return}publicclasspublicclassTaskInfoprivateDrawabletaskIcon;privateStringtaskName;privateStringpackName;privatelongmemSize;//进程图//进程名//对应包//占用内privateprivatebooleanprivateintprivateintprivateboolean//系统进程//用户进程//用于listViewitem含有checkbox@parampublicstaticList<TaskInfo>getTaskInfos(Contextcontext){List<TaskInfo>list=newArrayList<TaskInfo>();ActivityManageram=(ActivityManager)PackageManagerpm=context.getPackageManager();List<RunningAppProcessInfo>processes=for(RunningAppProcessInfoprocess:processes){TaskInfotaskInfo=newTaskInfo();StringpackName=//进程包名称longmemSize=am.getProcessMemoryInfo(new{process.pid})[0].getTotalPrivateDirty()*try

PackageInfopkInfo=pm.getPackageInfo(packName,0); //获取 intflags //系统程}else //用户程}}catch(NameNotFoundExceptione){} //系统进程ID //用户进程ID}return}主要是杀死进程,空进程,不能杀死服务进程,前台进程与系统持久化进程,也不能////杀死全部 List<RunningAppProcessInfo>infos=am.getRunningAppProcesses();for(RunningAppProcessInfoinfo:infos){}//当前运行的任务栈(最近打开的任务栈,在集合的最//当前运行的任务栈(最近打开的任务栈,在集合的最前面List<RunningTaskInfo>runningTasks=RunningTaskInfotaskInfo=runningTasks.get(0); //获取最近打开应用的任务栈StringpackName=taskInfo.topActivity.getPackageName(); //获取应用的包名;栈顶Activity;taskInfo.baseActivity;栈低连接管理器,Classthatanswersqueriesaboutthestateofnetworkconnectivity.Italsonotifiesapplicationswhennetworkconnectivitychanges.<uses-permission<uses-permissionandroid:name="android.permission.INTERNET"publicvoidpublicvoidisNetWorkAvailable(){ConnectivityManagercm=(ConnectivityManager)NetworkInfo[]infos=cm.getAllNetworkInfo();for(NetworkInfoinfo:infos){}}WindowManager&LayoutParamsLayoutParams,LayoutParams用于设置当View对象的布局参数;WindowManager整个应用的窗体管理器,它管理的View不允许被移到屏幕外;windowMangerview对象时对屏幕边界时,params.xparams.y可0或大于屏幕的高宽,处理时,请参考下面的代码;viewwindowMangerLayoutParams.xygetLeftprivateWindowManager/**自定义Toastview对象privateView/**土司的布局参数privateWindowManager.LayoutParams*自定义土司显示privatevoidshowAddress(Stringaddress)toastView=View.inflate(this,R.layout.toast_loaction,null);params=newparams.gravityGravity.LEFT| //布局参数设置位params.x=sp.getInt(Constant.sp.LOCATION_LEFT,0); //x设置params.y=sp.getInt(Constant.sp.LOCATION_TOP, //y设params.width=WindowManager.LayoutParams.WRAP_CONTENT;params.format=//定义窗体的类型TYPE_PRIORITY_PHONE,这是系统类型窗体,需要配置权限params.type=WindowManager.LayoutParams.TYPE_PRIORITY_PHONE;windowMgr.addView(toastView,params); //添加至窗体}if(toastView!=null){}privatevoiddrag(Viewv,MotionEvente)intnewXint //记录新位置intnewY=(int)intdiffXnewX //计算偏移量intdiffY=newY-params.x //更新位params.y+=diffY;windowMgr.updateViewLayout(v,params);//==使用windowManager注意的地方,windowManger添加的view不能移除屏幕,if(params.x<0){params.x=0;}if(params.y<0)params.y=params.y=}if(params.x>windowMgr.getDefau y().getWidth()){params.x=windowMgr.getDefau }if(params.y>windowMgr.getDefauparams.y=windowMgr.getDefau}startX=newX;startY=y().getHeight()) }API,程序中,无法直接引入其类,须通过反射来实现;*终止privatevoidendCall()tryClass<?>clazzMethodmethod=clazz.getDeclaredMethod("getService", 对象(AIDL)须引入I ephonyaidl文件IBinderb=(IBinder)method.invoke(null, ephonyi ephony=I }catch(Exceptione){}}//从系统服务中,获取定时任务管理//从系统服务中,获取定时任务管理AlarmManageram=(AlarmManager)//延迟意//ELAPSED_REALTIME:真实时间;5秒后执行,5am.setRepeating(AlarmManager.ELAPSED_REALTIME,5000,5000,ephonyManagerephonyManager=simSerial simSerial Device SmsManagersmsManager=SmsManager.SmsManagersmsManager=SmsManager.getDefault();smsManager.sendTextMessage(safePhone,null,"simchanged",null,null);LocationManagerLocationManager=Criteriacriteria=newCriteria();用//定//海//运行产生费//是否费电//同StringbestName //最好的定位方AppWidgetManagerawm=AppWidgetManagerawm=设置相资源文件 ReturnaResourcesinstanceforyourapplication'spackage.用于获取资源文件,获取资产文件 am=am=InputStreamips=am.open(fileName);//获取文件输入 (4大组件有点类似web.xml文件;是应用默认是优先安装在内存中,可通过设置manifest节点属性installLocation来指定; SD卡;Activity长按home键,会列出最近打开的activity,如果不希望某个activity 介 4.1空 privateprivateStringgetAvailSD()Filepath=Environment.getExternalStorageDirectory();StatFsstat=newStatFs(path.getPath());longblockSize=longavailableBlocks=stat.getAvailableBlocks();longavailsd=blockSize*availableBlocks;returnFormatter.formatFileSize(this,availsd);}privateStringgetAvailROM()StatFsstat=newStatFs(path.getPath());longblockSize=stat.getBlockSize();longavailableBlocks=stat.getAvailableBlocks();longavailsd=blockSize*availableBlocks;returnFormatter.formatFileSize(this,availsd);} 保存一些配置信息,像CPU,内存的等配置信息,都在此 使用ls–L打开此 是进程的UID,保存是进程的一些流量信息; 下的文件信息(rcv与snd;api //获取总 //总的上传流 //获取 //上android系统相getRunningAppProcesses()getRunningTasks()区别:在文件中,4大组件都是配置在application节点下的Activity,用户看到界面;任务栈:TaskStack(backstack)后退栈,它的结构是一个链表源代码收获6.1flagspublicstaticfinalintpublicstaticfinalintFLAG_SYSTEM=1<<0;publicstaticfinalintFLAG_HAS_CODE=1<<2;//////一些Int3232个,031int类型的值,可表示多个状态;常用7.1Activity 在模拟器中,打开的编辑界面找到其对应的源代码的文件,快速定位到ComposeMessageActivity,并获取其中的Intentintent=newIntent(); /store/apps/details?id=%s",selectedAppInfo.getAppName(), 屏幕的适Android的设备,屏幕的分辨率有很多,在处理分辨率适配的问题,我们应该遵循下面的原publicpublicclassDensityUtil根 的分辨率从dip的单位转成为px(像素publicstaticintdip2px(Contextcontext,floatdpValue)finalfloatscale= return(int)(dpValue*scale+}根 的分辨率从px(像素)的单位转成为publicstaticintpx2dip(Contextcontext,floatpxValue)finalfloatscale= return(int)(pxValue/scale+}}应用程序的异常处ApplicationApplication类是用于全局应用程序的状态可继承Application类来记录当前程序发生的 package: SafeApplication类就表示当前的应用程序;applicationname<applicationpublic SafeApplicationextendsApplicationprivatestaticfinalStringTAG= //整个应用初始化之前,会调用这个方法,可在这里进行一publicvoidonCreate()//覆盖默认的Thread.setDefaultUncaughtExceptionHandler(new}覆盖@authorzhaoyu2013-8-11下午privateclassMyUnCaughtExceptionHandlerimplementsUncaughtExceptionHandler{publicvoiduncaughtException(ThreadthreadThrowableex){Log.i(TAGex.toString());

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论