天语t619plus吧 关注:12贴子:618

关于安装包那些你不知道的秘密

只看楼主收藏回复

对于apk,大家可能仅仅知道是安装包而已,这里将关于apk的我所知所有内容进行说明,并以此为话题进行发散性的一些教程和解析。


来自Android客户端1楼2015-06-30 10:01回复
    首先,什么是apk?
    apk就是安卓的安装包格式,本质是zip压缩包。


    来自Android客户端2楼2015-06-30 10:04
    回复
      广告
      立即查看
      既然apk可以作为zip打开,那么打开后是什么呢?下面继续介绍


      来自Android客户端3楼2015-06-30 10:07
      回复
        ---AndroidManifest.xml
        安卓程序的所有信息的记录表,包括程序的隐私权限,安装包名,接收器,后台服务,是否支持app2sd功能,程序界面主题等等属性


        来自Android客户端4楼2015-06-30 10:11
        回复
          在安装程序时我们会发现安装程序之前,安装器总是可以完整的列出程序权限,360的安装器可以先检测程序是否自启动等等,这些都是由 AndroidManifest.xml文件说明的


          来自Android客户端5楼2015-06-30 10:16
          回复
            这里涉及到一些新的名称,这里给大家介绍一下


            来自Android客户端6楼2015-06-30 10:17
            回复
              1.app2sd
              即系统的移动到SD卡,记得这条属性是由 AndroidManifest.xml文件里面的属性决定的,具体属性不清楚,了解一下即可


              来自Android客户端7楼2015-06-30 10:20
              回复
                3.隐私权限
                程序对系统某些功能需要声明隐私权限,比如访问摄像头需要声明摄像头的隐私权限,访问网络也是要声明相关的隐私权限。
                如果程序请求不需要的权限,请尝试监控或禁用他(比如一款非网游的游戏访问网络和短信信息,通讯录等权限,这时候需要提防这个app会不会上传或访问隐私内容)只是建议而已


                来自Android客户端9楼2015-06-30 10:40
                回复
                  广告
                  立即查看
                  4.安装包名
                  系统安装软件是根据安装包名判断软件是不是同一个软件,而不是程序的名字,相同安装包名的软件可以覆盖安装(签名是另外说)


                  来自Android客户端10楼2015-06-30 10:44
                  回复
                    ---classes.dex
                    程序的执行代码部分,由JAVA代码编写,决定程序执行的功能与动作等等


                    来自Android客户端11楼2015-06-30 10:48
                    回复
                      ---resources.arsc
                      程序的资源索引,包括图片等属性的ID,程序内的文字,自定义的主题风格,字体大小等等


                      来自Android客户端12楼2015-06-30 10:52
                      收起回复
                        下午继续更


                        来自Android客户端13楼2015-06-30 10:54
                        回复
                          --- META-INF(文件夹)
                          签名文件夹


                          来自Android客户端14楼2015-06-30 17:21
                          回复
                            签名是什么?
                            签名是验证程序是否是正版的或者无修改版的标志。每个安卓程序都必须有签名才能正常安装。而安卓编程工具默认使用debug签名,而应用开发者一般会构建自己的签名。如果软件直接修改而没有重新签名会导致无法安装,如果安装软件时旧版本的签名与新版本不同,则会提示签名不一致而无法安装。如果重新签名加密应用会导致程序无法启动(强行关闭)
                            软件一经修改则会破坏原有签名。根据需要重新签名。
                            在/system/app目录下的app可以不用重签便可以直接生效(可能需要重启)。


                            来自Android客户端16楼2015-06-30 17:37
                            回复
                              广告
                              立即查看
                              ---lib
                              其中一般包括armeabi, armeabi-v7a,x86,mips等子文件夹,在这些文件夹里有一些lib开头,格式为so的文件。
                              这是因为安卓为了使软件更丰富,除了开放对于JAVA语言的SDK,还有c/c++语言的ndk,JAVA语言编写出来的代码经由dx工具编译,变成了dex文件,而c/c++代码则被转换成了这些so文件。


                              来自Android客户端17楼2015-06-30 17:51
                              回复