当前位置:  编程技术>移动开发
本页文章导读:
    ▪发布了一个连alpha也算不下的演示        发布了一个连alpha也算不上的演示 http://demo.playing.im几乎可以运行在各种浏览器上,但ie可能有点问题,反正也不管它,重点是可以运行在智能手机的浏览器上。 ......
    ▪ 什么是APK资料        什么是APK文件 APK是Android Package的缩写,即Android安装包。APK是类似Symbian Sis或Sisx的文件格式。通过将APK文件直接传到Android模拟器或Android手机中执行即可安装。APK文件其实是zip格式,但后缀名.........
    ▪ 任务管理器在运行的程序(2)       任务管理器正在运行的程序(2) RunningTaskInfo AndroidManifest.xml 必须在AndroidManifest.xml添加Android.permission.GET_TASKS的权限,才能访问系统正在运行中的Activity。 <uses-permission android:name="android.permis.........

[1]发布了一个连alpha也算不下的演示
    来源: 互联网  发布时间: 2014-02-18
发布了一个连alpha也算不上的演示
http://demo.playing.im

几乎可以运行在各种浏览器上,但ie可能有点问题,反正也不管它,重点是可以运行在智能手机的浏览器上。

    
[2] 什么是APK资料
    来源: 互联网  发布时间: 2014-02-18
什么是APK文件

APK是Android Package的缩写,即Android安装包。APK是类似Symbian Sis或Sisx的文件格式。通过将APK文件直接传到Android模拟器或Android手机中执行即可安装。

APK文件其实是zip格式,但后缀名被修改为apk,通过UnZip解压后,可以看到Dex文件,Dex是Dalvik VM executes的全称,即Android Dalvik执行程序,并非Java ME的字节码而是Dalvik字节码。

一个APK文件结构为:
mete-INF Jar文件中常可以看到
res 存放资源文件的目录
AndroidManifest.xml 程序全局配置文件
classes.dex Dalvik字节码
resources.arsc 编译后的二进制资源文件

总结下我们发现Android在运行一个程序时首先需要UnZip,然后类似Symbian那样直接,和Windows Mobile中的PE文件有区别,这样做对于程序的保密性和可靠性不是很高,通过dexdump命令可以反编译,但这样做符合发展规律,微软的 Windows Gadgets或者说WPF也采用了这种构架方式。

在Android平台中dalvik vm的执行文件被打包为apk格式,最终运行时加载器会解压然后获取编译后的androidmanifest.xml文件中的permission分支相关的安全访问,但仍然存在很多安全限制,如果你将apk文件传到/system/app文件夹下会发现执行是不受限制的。最终我们平时安装的文件可能不是这个文件夹,而在android rom中系统的apk文件默认会放入这个文件夹,它们拥有着root权限。


    
[3] 任务管理器在运行的程序(2)
    来源: 互联网  发布时间: 2014-02-18
任务管理器正在运行的程序(2)

RunningTaskInfo

AndroidManifest.xml

必须在AndroidManifest.xml添加Android.permission.GET_TASKS的权限,才能访问系统正在运行中的Activity。

  • <uses-permission android:name="android.permission.GET_TASKS"> 
  • 扩展学习

    上面的程序可以取出后台正在运行中的Activity,但是却没有办法取得正在后台运行中的服务(Service),以下的扩展学习则是以取得系统服务(System Background Service)作为练习对象,并将取得的服务列表条列于程序的ListView当中,程序运行结果如图5-24所示。

      图5-24  自己编写的Service-irdc.ex06_17,正在运行中

    访问系统后台服务(Service)与Activity的写法不同,使用方法不同,其在于所需读取的不再是ActivityManager.RunningTaskInfo,而是ActivityManager.RunningServiceInfo,而在RunningTas-kInfo属性里,则需访问process以及pid来取得服务的名称及ID值,如以下程序,需在单击按钮的try{}语句中,替换原有的写法即可取出正在运行的系统服务(System Service)。

  • /* ActivityManager对象向系统取得ACTIVITY_SERVICE */  
  • mActivityManager =  
  • (ActivityManager)EX05_21.this.getSystemService(ACTIVITY_SERVICE);  
  •  
  • arylistTask = new ArrayList<String>();  
  •  
  • /* 以getRunningTasks方法取回正在运行中的程序TaskInfo */  
  • List<ActivityManager.RunningServiceInfo> mRunningTasks =  
  • mActivityManager.getRunningServices(intGetTastCounter);  
  •  
  • int i = 1;  
  • /* 以循环及baseActivity方式取得任务名称与ID */  
  • for (ActivityManager.RunningServiceInfo amTask : mRunningTasks)  
  • {  
  •   /* baseActivity.getClassName取出运行任务名称 */  
  •   arylistTask.add("" + (i++) + ": "+  
  •   amTask.process + "(ID=" + amTask.pid +")");  
  • }  
  • aryAdapter1 = new ArrayAdapter<String> 
  • (EX05_21.this, R.layout.simple_list_item_1, arylistTask);  
  •  
  • if(aryAdapter1.getCount()==0)  
  • {  
  •   /* 当没有任何运行的任务,则提示信息 */  
  •   mMakeTextToast  
  •   (  
  •     getResources().getText  
  •     (R.string.str_err_no_running_service).toString(),  
  •     true  
  •   );  
  • }  
  • else  
  • {  
  •   /* 发现后台运行的任务程序,以ListView Widget条列呈现 */  
  •   mListView01.setAdapter(aryAdapter1);  
  • ActivityManager.RunningTaskInfo及ActivityManager.RunningServiceInfo可访问的属性如表5-8和表5-9所示。

    表5-8 Android.app.ActivityManager.RunningTaskInfo

    数 据 类 型

    属 性 名 称

    描    述

    ComponentName

    baseActivity

    该任务作第一个运行中Activity组件名称

    CharSequence

    description

    该任务现在的状况描述

    Int

    id

    该任务的ID

    Int

    numActivities

    该任务所运行的Activity数量,

    包含已停止的

    Int

    numRunning

    该任务正在运行Activity数量,

    不包含已停止或不延续运行的

    Bitmap

    thumbnail

    以缩图显示该任务目前的状态

    ComponentName

    topActivity

    该任务自运行以来最优先运行的组件名称


    表5-9 Android.app.ActivityManager.RunningServiceInfo

    数 据 类 型

    属 性 名 称

    描    述

    long

    activeSince

    该服务自启动至今的时间

    int

    clientCount

    连接至此服务的client数量

    int

    crashCount

    该服务在运行时共死机的次数

    boolean

    foreground

    若为true,则该服务在后台运行

    long

    lastActivityTime

    最后一个Activity与该服务绑定的时间

    int

    pid

    若此值不为0,则表示正在运行服务的ID

    String

    Process

    该服务的名称

    long

    restarting

    若此值不为0,则表示该服务

    不在运行中,但也许是在指定的时间才会运行

    ComponentName

    service

    服务的组件名称

    boolean

    started

    若此值为true,则表示服务已经在启用运行中


    来自:http://book.51cto.com/art/201007/212203.htm


        
    最新技术文章:
    ▪Android实现Back功能代码片段总结 iis7站长之家
    ▪Android开发之注册登录方法示例
    ▪Android获取手机SIM卡运营商信息的方法
    ▪Android实现将已发送的短信写入短信数据库的...
    ▪Android发送短信功能代码
    ▪Android根据电话号码获得联系人头像实例代码
    ▪Android中GPS定位的用法实例
    ▪Android实现退出时关闭所有Activity的方法
    ▪Android实现文件的分割和组装
    ▪Android录音应用实例教程
    ▪Android双击返回键退出程序的实现方法
    ▪Android实现侦听电池状态显示、电量及充电动...
    ▪Android获取当前已连接的wifi信号强度的方法
    ▪Android实现动态显示或隐藏密码输入框的内容
    ▪根据USER-AGENT判断手机类型并跳转到相应的app...
    ▪Android Touch事件分发过程详解
    ▪Android中实现为TextView添加多个可点击的文本
    ▪Android程序设计之AIDL实例详解
    ▪Android显式启动与隐式启动Activity的区别介绍
    ▪Android按钮单击事件的四种常用写法总结
    ▪Android消息处理机制Looper和Handler详解
    ▪Android实现Back功能代码片段总结
    ▪Android实用的代码片段 常用代码总结
    ▪Android实现弹出键盘的方法
    ▪Android中通过view方式获取当前Activity的屏幕截...
    ▪Android提高之自定义Menu(TabMenu)实现方法
    ▪Android提高之多方向抽屉实现方法
    ▪Android提高之MediaPlayer播放网络音频的实现方法...
    ▪Android提高之MediaPlayer播放网络视频的实现方法...
    ▪Android提高之手游转电视游戏的模拟操控
     


    站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3