宁可枝头抱香死,何曾吹落北风中。这篇文章主要讲述Android编译文件——R文件相关的知识,希望能为你提供帮助。
R文件:
当 android 应用程序被编译,会自动生成一个 R 类,其中包含了所有 res/ 目录下资源的 ID。包括布局文件layout,资源文件,图片(values下所有文件)等。
在写java代码需要用这些资源的时候,你可以使用 R 类,通过子类+资源名或者直接使用资源 ID 来访问资源。
R.java文件是活动的Java文件,如MainActivity.java的和资源如strings.xml之间的胶水
R.java文件中资源ID的含义:
资源:layout、string、drawable、raw、style、theme等等
这些资源都会被赋予独一无二的ID即资源索引来方便系统访问。这些资源索引由Android的工具AAPT(Android Asset Packing Tool)生成的八位十六进制整数型。
文章图片
分配resource id的主要逻辑实现是在framework/base/tools/aapt/Resource.cpp 和 ResourceTable.cpp
这些资源会在编译过程中被打包进APK中(res文件夹)或者被打包成独立的资源APK包。
添加资源的命名规则:资源文件只能以小写字母和下划线做首字母,随后的名字中只能出现 [a-z0-9_.] 这些字符,否则R.java文件不会自动更新。
使用:
.java代码:R.xxx(类型).xxx(id)
XML代码:通过@xxx即可得到
重新编译生成R文件:
生成smali文件夹-> 生成R文件-> 编译R.java文件-> 生成的R文件的jar-> 生成 dex文件-> 生成smali文件-> 替换smali文件-> 编译apk,签名安装测试
【Android编译文件——R文件】
推荐阅读
- 看似简单一套语音直播APP源码开发需要哪些技术支持()
- vue-cli创建uni-app项目
- 从Nginx中的服务器标题横幅中删除版本
- 如何在Ubuntu或CentOS/RHEL中安装Nginx()
- nginx加载共享库时出错(error while loading shared libraries: libpcre.so.1)
- 带有信息图表的HTTP状态代码快速指南
- 使用GoAccess的Nginx和Apache日志监控
- Nginx – 413 Request Entity Too Large(在上传wordpress主题时)
- 将IP请求重定向到域URL –测试并修复IP规范问题