android studio开发工具

来源:互联网 发布:淘宝复制天猫宝贝违规 编辑:程序博客网 时间:2024/05/16 11:24

android studio开发应用过程 

AS目录结构

创建工程

  • AS的工程目录结构:每个project目录(类似于eclipse Workplace)下可以有多个应用程序(eclipse project)。
  • 创建过程中会新建一个应用程序,可以选择Minimum SDK,最小适配版本。
  • 创建完成后,project目录下默认有两个分类:工程名 和 Extenrnal Libraies

工程目录

  • .idea
    Intellij IDEA配置文件
  • app(与具体应用相关)
    应用程序模块和文件
  • build
    存放build之后生成的文件
  • gradle
    存放gradler-wrapper文件
  • .gitignore git代码管理所忽略的文件列表文件
  • build.gradle 构建系统的配置文件,可在其中设置应用程序签名等信息
  • gradlew.bat gradle启动脚本(for Windows)
  • .imi intelliJ IDEA存放工程目录文件。
  • local.properties 与具体电脑相关的一些配置文件,最常用信息是本机sdk的存放路径。

Android Application Modules

每个Android Application Modules都是最终可以构建出apk文件的模块,包括应用程序的源代码和资源文件,其中大部分代码都可以直接通过IDE生成,少量特殊文件需要自己创建。

-build/ 存放特殊变种的build
libs/ 存放私有库(相对project目录的库来说)
src/ 源代码路径,src文件包含 Java源代码和res文件 - main/java
java文件 - main/jni JNI编程生成的*.so文件

Library Module(SDK tools>14)

  • 包含着通用的代码以及资源文件,类似JDK库,Android Application Modules可以引用其中的library在编译apk时,也会把编译后的代码编进apk,多个Application Modules可以引用相同的库。
  • 可以包含jar文件
    • 应用场景:多个应用程序所共用的代码和资源文件,
  • :多个相关的应用程序。
  • 一个程序有付费版和免费版,很多部分都是相同,也可以把共同部分放在Library Module

Test Projects ###

  • 路径在/src/androidTest路径
  • android测试模块
    一般包含java文件

编译和运行

Android studio采用gradle构建工具,就我的理解是类似于linux下编译C和C++项目的make工具,写好脚本,然后自动化执行。 构建:在工程目录下运行 gradle assembleDebug(构建整个工程,调试版本) 或者在Application Modules路径下运行 gradle assembleDebug,单独build应用程序。 构建流程图, 过程分析,

1. 资源文件-->R.java,Android studio对文件采取自动保存,每次修改资源文件(layout,value等)就会通过aapt文件自动更新R.java文件,如果执行 gradle clean之后,AS会提示找不到R.java文件。可通过 gradle generateDebugSources生成R.java文件,从图中可以看出是通过调用aapt程序来完成这一步。

AIDL (Android Interface Definition Language) 安卓接口定义语言(几乎没有接触,就自己理解这来写),这里的接口是指interprocess communication的接口(跨进程通信接口)。由于Android的设计,应用程序是不能读写其他应用程序的内存的。 所以通信可以采取这种方式。

这一步和我们平时所进行java编程很类似,生成.class 字节码文件。虽然Android基于java虚拟机,加载的不是jvm虚拟机,而是dalvik虚拟机,

然后通过dex工具(类似于gradle dexDebug等命令)将class文件和第三方类库文件打包在一起,生成.dex文件。


生成apk文件,compiled Resources文件是指编译后资源文件,R.java是资源索引文件,都是通过aapt生成。

然后通过Jarsigner工具进行签名,签名。然后使用zipalign进行4bit对齐。 Debug版本系统提供好了Debug签名并且会自动进行对齐。 Release版本在签名时也会自动进行对齐。

一些其他的笔记

  • dalvik虚拟机: 
    jvm与dalvik,简单来说,dalvik是google官方开发出来的针对android平台经过很多优化的java 运行环境,每启动一个APP都会新建一个虚拟机实例,各应用程序不会互相影响。
  • 签名和对齐 , 签名主要是为了验证应用程序身份,通过对签名和包名的双重校验能确定应用程序的唯一性。防止应用程序被恶意替换。 对齐是为了优化应用程序数据存储格式,在加载到内存中速度更快,加快应用程序执行速度。

  • AS签名方法,可通过菜单build进入签名菜单。

  • 通过gradle中配置:

配置gradlle - 代码混淆 : 作用:主要为了保护代码,apk的反编译是很简单的,混淆之后反编译出来的代码可读性很差。
可以在gradle配置文件中配置混淆。

0 0
原创粉丝点击