zoukankan      html  css  js  c++  java
  • 与时俱进之APK文件

    APK是AndroidPackage的缩写,即Android安装包(apk)。APK是类似Symbian Sis或Sisx的文件格式。通过将APK文件直接传到Android模拟器或Android手机中执行即可安装。apk文件和sis一样,把android sdk编译的工程打包成一个安装程序文件,格式为apk。 APK文件其实是zip格式,但后缀名被修改为apk,通过UnZip解压后,可以看到Dex文件,Dex是Dalvik VM executes的全称,即Android Dalvik执行程序,并非Java ME的字节码而是Dalvik字节码。


    文件结构

      一个APK文件结构为:
      1. META-INF\ (注:Jar文件中常可以看到);
      2. res\ (注:存放资源文件的目录) ;
      3. AndroidManifest.xml (注:程序全局配置文件) ;
      4. classes.dex (注:Dalvik字节码);
      5. 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权限。

    Work for fun,Live for love!
  • 相关阅读:
    数据挖掘中所需的概率论与数理统计知识、上
    pig语法学习 FOREACH GENERATE group AS
    pig flatten
    F-stack及其Nginx、redis的编译安装
    f-stack中nginx配置后make出现error: ignoring return value of ‘ftruncate’
    高速网络流量测量方法的记录
    DPDK测试用例(sample)编译
    VPP(Vector Packet Processing)配置工具
    DMA(Direct Memory Access)简介
    VPP(Vector Packet Processing)浅析
  • 原文地址:https://www.cnblogs.com/allenblogs/p/2023500.html
Copyright © 2011-2022 走看看