Android面试-Android项目构建
16lz
2021-01-25
【
>>> Android Studio目录结构:{ ---.gradle:编译脚本文件 ---.idea: ---module: ---build:编译好生成的文件 ---gradle:兼容.gradle版本的文件 ---.gitignore:跟git工具有关的文件,配置不要上传的文件 ---build.gradle:相关的配置文件 ---gradle.properties:配置文件,它的属性是全局的。 ---gradlew:是Liux下的可执行文件。 ---gradlew.bat:Windows下的可执行文件。 ---local.properties:这是本地属性名设置。 ---settings.gradle:这是和设置相关的脚本。 ---proguard-rules.pro:代码混淆的配置。 }
>>> Android项目构建:{ 1、Android构建流程 .java编译成.class字节码文件---->+第三发的java文件,打包成------>.dex文件,Android可执行的文件----->在打包资源文件成sew文件----->.dex + sew合并成未签名的包------->通过签名打包成一个完整的包。 ---aapt工具:Android的资源打包工具,编译成二进制形式,assets文件不会被编译,但会生成R.java文件,存储Id。 ---aidl:将aidl接口转换成java接口。 ---Java Compter: ---dex: ---apkbuilder: ---JarSiger:签名文件 ---Zipalgn:对打包的Android程序进行优化。 2、jenkins持续集成构建 }
>>> git版本控制:{ ===.get容易混淆的两个概念:[ 1、工作区 :就是在电脑中看见的文件目录。 2、gitignore文件:不想上传的过滤文件。 ]
===一些常用git命令:[ 1、git init //创建git创库用的,放置git的版本。 2、git status: //查看当前仓库的一些状态 3、git diff 文件名: //对比修改的内容 4、git add 文件名: //把要添加的文件放在栈存区中 5、git commit: //把git add放到栈存区的内容,提交到我们的代码区中。提交到代码分支上。 6、git clone: //从一个远程的仓库,去克隆代码到本地调用的命令。后一般加git的地址 7、git branch: //查看当前分支到底是什么 8、git -help: //查看帮助 9、git checkout: //切换分支 ]
===.git的两种工作流:[ 1、fock / clone:
有代码的管理员,涉及代码审核,保证代码质量。 2、clone: ]
}
>>> gradle:{ ===settings.gradle:多模块开发
===build.gradle: ---buildscript: ---allprojects:定义模块的属性
===build.gradle:可以覆盖根节点下的任何属性 ---defaultConfig配置的属性可以覆盖AndroidManifest.xml配置的属性。 applicationId:覆盖AndroidManifest中的 package="com.xys.entmayset1",作为应用的唯一标识;在R文件中作为它使用的包名。 }
>>> proguard代码混淆:{ proguard到底是什么、ProGuard技术的功能、proguard工作原理
===proguard到底是什么:[ ProGuard工具是用于压缩,优化,混淆我们的代码,主要作用是可以移除代码中的无用类,字段,方法和属性同时可以混淆。 ]
===ProGuard技术的功能:[ 1、压缩:检查移除代码中没有用到的类,字段,方法和属性, 2、优化:对字节码文件进行优化,会移除无用的.class文件的指令 3、混淆:把开发中有意义的名词变成无意义的名词。 4、预检测:对处理后的代码再次进行检测。 ]
===proguard工作原理:[ ---EntryPoint:一种标志,是在ProGuard中不会被处理的类。 ---为什么要混淆:Java是跨平台的解释型代码,编译成字节码存储在.class文件中,由于跨平台的需要,包含了很多源代码信息。 ]
}
】
>>> Android Studio目录结构:{ ---.gradle:编译脚本文件 ---.idea: ---module: ---build:编译好生成的文件 ---gradle:兼容.gradle版本的文件 ---.gitignore:跟git工具有关的文件,配置不要上传的文件 ---build.gradle:相关的配置文件 ---gradle.properties:配置文件,它的属性是全局的。 ---gradlew:是Liux下的可执行文件。 ---gradlew.bat:Windows下的可执行文件。 ---local.properties:这是本地属性名设置。 ---settings.gradle:这是和设置相关的脚本。 ---proguard-rules.pro:代码混淆的配置。 }
>>> Android项目构建:{ 1、Android构建流程 .java编译成.class字节码文件---->+第三发的java文件,打包成------>.dex文件,Android可执行的文件----->在打包资源文件成sew文件----->.dex + sew合并成未签名的包------->通过签名打包成一个完整的包。 ---aapt工具:Android的资源打包工具,编译成二进制形式,assets文件不会被编译,但会生成R.java文件,存储Id。 ---aidl:将aidl接口转换成java接口。 ---Java Compter: ---dex: ---apkbuilder: ---JarSiger:签名文件 ---Zipalgn:对打包的Android程序进行优化。 2、jenkins持续集成构建 }
>>> git版本控制:{ ===.get容易混淆的两个概念:[ 1、工作区 :就是在电脑中看见的文件目录。 2、gitignore文件:不想上传的过滤文件。 ]
===一些常用git命令:[ 1、git init //创建git创库用的,放置git的版本。 2、git status: //查看当前仓库的一些状态 3、git diff 文件名: //对比修改的内容 4、git add 文件名: //把要添加的文件放在栈存区中 5、git commit: //把git add放到栈存区的内容,提交到我们的代码区中。提交到代码分支上。 6、git clone: //从一个远程的仓库,去克隆代码到本地调用的命令。后一般加git的地址 7、git branch: //查看当前分支到底是什么 8、git -help: //查看帮助 9、git checkout: //切换分支 ]
===.git的两种工作流:[ 1、fock / clone:
有代码的管理员,涉及代码审核,保证代码质量。 2、clone: ]
}
>>> gradle:{ ===settings.gradle:多模块开发
===build.gradle
===build.gradle:可以覆盖根节点下的任何属性 ---defaultConfig配置的属性可以覆盖AndroidManifest.xml配置的属性。 applicationId:覆盖AndroidManifest中的 package="com.xys.entmayset1",作为应用的唯一标识;在R文件中作为它使用的包名。 }
>>> proguard代码混淆:{ proguard到底是什么、ProGuard技术的功能、proguard工作原理
===proguard到底是什么:[ ProGuard工具是用于压缩,优化,混淆我们的代码,主要作用是可以移除代码中的无用类,字段,方法和属性同时可以混淆。 ]
===ProGuard技术的功能:[ 1、压缩:检查移除代码中没有用到的类,字段,方法和属性, 2、优化:对字节码文件进行优化,会移除无用的.class文件的指令 3、混淆:把开发中有意义的名词变成无意义的名词。 4、预检测:对处理后的代码再次进行检测。 ]
===proguard工作原理:[ ---EntryPoint:一种标志,是在ProGuard中不会被处理的类。 ---为什么要混淆:Java是跨平台的解释型代码,编译成字节码存储在.class文件中,由于跨平台的需要,包含了很多源代码信息。 ]
}
】
更多相关文章
- 没有一行代码,「2020 新冠肺炎记忆」这个项目却登上了 GitHub 中
- 一款常用的 Squid 日志分析工具
- GitHub 标星 8K+!一款开源替代 ls 的工具你值得拥有!
- RHEL 6 下 DHCP+TFTP+FTP+PXE+Kickstart 实现无人值守安装
- Linux 环境下实战 Rsync 备份工具及配置 rsync+inotify 实时同步
- Dalvikvm:在Android平台上执行.class文件
- Android下的数据储存方式
- Android自定义Dialog(仿QQ同步助手退出对话框)
- 将项目导入到eclipse中后会出现这个问题,提示找不到下列文件: impo