安卓学习内容记录(笔记,供学习回溯)

安卓工程中那些文件被称为资源文件

转载于https://zhuanlan.zhihu.com/p/415494152

目录资源类型
animator/用于定义属性动画的 XML 文件
anim/用于定义渐变动画的 XML 文件。(属性动画也可保存在此目录中,但为了区分这两种类型,属性动画首选animator/目录。)
color/用于定义颜色状态列表的 XML 文件
drawable/位图文件(.png、.9.png、.jpg、.gif)或编译为以下可绘制对象资源子类型的 XML 文件:位图文件九宫格(可调整大小的位图)状态列表形状动画可绘制对象
mipmap/适用于不同启动器图标密度的可绘制对象文件
layout/用于定义用户界面布局的 XML 文件
menu/用于定义应用菜单(如选项菜单、上下文菜单或子菜单)的 XML文件
raw/需以原始形式保存的任意文件。如要使用原始InputStream打开这些资源,请使用资源 ID(即R.raw.filename)调用Resources.openRawResource()。但是,如需访问原始文件名和文件层次结构,则可以考虑将某些资源保存在assets/目录(而非res/raw/)下。assets/中的文件没有资源 ID,因此你只能使用AssetManager读取这些文件
values/包含字符串、整型数和颜色等简单值的 XML 文件。其他res/子目录中的 XML 资源文件会根据 XML 文件名定义单个资源,而values/目录中的文件可描述多个资源。对于此目录中的文件,元素的每个子元素均会定义一个资源。例如,元素会创建R.string资源,元素会创建R.color资源。由于每个资源均使用自己的 XML 元素进行定义,因此你可以随意命名文件,并在某个文件中放入不同的资源类型。但是,你可能需要将独特的资源类型放在不同的文件中,使其一目了然。例如,对于可在此目录中创建的资源,下面给出了相应的文件名约定:arrays.xml:资源数组(类型数组)。colors.xml:颜色值。dimens.xml:尺寸值。strings.xml:字符串值。styles.xml:样式
xml/可在运行时通过调用Resources.getXML()读取的任意 XML 文件。各种 XML 配置文件(如可搜索配置)都必须保存在此处
font/带有扩展名的字体文件(如.ttf、.otf或.ttc),或包含元素的 XML 文件。如需详细了解作为资源的字体,请参阅XML 中的字体

-Animation Resources 定义预先确定的动画。 补间动画保存在res/anim/中并通过R.anim类访问。
帧动画保存在res/drawable/中并通过R.drawable类访问。

  • Color State List Resource 定义根据 View 状态而变化的颜色资源。 保存在res/color/中并通过R.color类访问。
  • Drawable Resources 使用位图或 XML 定义各种图形。 保存在res/drawable/中并通过R.drawable类访问。
  • Layout Resource 定义应用界面的布局。 保存在res/layout/中并通过R.layout类访问。
  • Menu Resource 定义应用菜单的内容。 保存在res/menu/中并通过R.menu类访问。
  • String Resources 定义字符串、字符串数组和复数形式(并包括字符串格式和样式)。 保存在res/values/中,并通过R.string、R.array和R.plurals类访问。
  • Style Resource 定义界面元素的外观和格式。 保存在res/values/中并通过R.style类访问。
  • Font Resources 在 XML 中定义字体系列并包含自定义字体。 保存在res/font/中并通过R.font类访问。
  • More Resource Types 将其他原始值定义为静态资源,具体包括:
  • Bool 包含布尔值的 XML 资源。
  • Color 包含颜色值(十六进制颜色)的 XML 资源。
  • Dimension 包含维度值(及度量单位)的 XML 资源。
  • ID 为应用资源和组件提供唯一标识符的 XML 资源。
  • Integer 包含整数值的 XML 资源。
  • Integer Array 提供整数数组的 XML 资源。
  • Typed Array 提供TypedArray(可用于可绘制对象数组)的 XML 资源。
哪些是代码文件

转载于http://blog.csdn.net/yelangjueqi/article/details/8992466

Android源码根文件夹结构:

bionic:android中所使用的是标准C库源文件,该项目将被编译成静态库文件,这些库文件仅在编译其他C程序时使用,不会被输出到最终设备中
bootable:二次引导程序源码,对应NAND Flash的二次引导分区中的内容,这部分代码不会被包含在最终的system.img或boot.img文件中
build:编译系统中枢,该目录下的各种make脚本和shell脚本共同组成了android的编译环境
cts:兼容测试代码,基于android系统的手机如果需要google的认证,则必须经过google的兼容性测试,兼容性测试的目的是为了保证该设备具有标准的 SDK API接口
dalvik:android中的java虚拟机相关的源码,虚拟机内部设计相关的文档可以参考dalvik/docs目录下的说明文档
development:一些开发android工程所使用的相关配置或文件,如:一些.classpath文件
device:不同设备相关的编译脚本文件,一个设备一般就是指一种型号的手机,如:Htc magic、Nexus One、Nexus S等等
external:android系统所依赖的一些外部库文件,如:sqlite、opencore等,这些文件大部分都是c/c++代码,也有少量的java库
frameworks:Framework的内核源码,主要由java文件组成
hardware:Android定义的硬件抽象层(HAL) 相关的文件
libcore:Dalvik虚拟机所依赖的java库,如HashMap、ArrayList等,这些库和Dailvik共同组成ailvik的java运行环境
ndk:Native Development Kit,即编译NDK所需的相关文件
packages:Android中的一些系统应用程序,比如Contacts、Phone等
prebuilt:编译所需的程序文件,主要包含不同平台的ARM编译器
sdk:编译SDK所需的相关文件
system:Android底层的Linux所需的一些系统工具程序,这些程序主要运行于adb、logcat等
tools:一些其他辅助工具,目前只有一个名称为tradefederation的java项目
vendor:和device目录中的程序共同定义一个设备所包含的私有文件,它与device目录的区别在于, device主要定义了不同设备所需的特有文件,但却是开源的,而vendor中包含的文件一般都是目标文件,却不是开源的。

Android源码\out目录结构:
out\target\product\generic\下有个system目录
(如果没有generic这个目录则是在项目名目录下,如mtk的wtxxxxx),

其包含内容简介如下:

   \system\app
   这个里面主要存放的是常规下载的应用程序,可以看到都是以APK格式结尾的文件,
   在这个文件夹下的程序为系统默认的组件,自己安装的软件将不会出现在这里,而是\data\文件夹中。
   
   \system\app\AlarmClock.apk 闹钟
   \system\app\Browser.apk 浏览器
   \system\app\Bugreport.apk Bug报告
   \system\app\Calculator.apk 计算器

   \system\bin
   这个目录下的文件都是系统的本地程序,从bin文件夹名称可以看出是binary二进制的程序,
   里面主要是Linux系统自带的组件:
   \system\bin\am
   \system\bin\app_process 系统进程
   \system\bin\dalvikvm Dalvik虚拟机宿主
   \system\bin\dbus-daemon 系统BUS总线监控
   \system\bin\debuggerd 调试器
   \system\bin\debug_tool 调试工具
   \system\bin\dexopt DEX选项
   \system\bin\dhcpcd DHCP服务器

   \system\etc
   从文件夹名称来看保存的都是系统的配置文件,比如APN接入点设置等核心配置。
   \system\etc\apns-conf.xml APN接入点配置文件
   \system\etc\AudioFilter.csv 音频过滤器配置文件
   \system\etc\AudioPara4.csv
   \system\etc\bookmarks.xml 书签数据库
   \system\etc\dbus.conf 总线监视配置文件

   \system\fonts
   字体文件夹,除了标准字体和粗体、斜体外可以看到文件体积最大的可能是中文字库,
   或一些unicode字库,从T-Mobile G1上可以清楚的看到显示简体中文正常,
   其中DroidSansFallback.ttf文件大小

   \system\fonts\DroidSans-Bold.ttf
   \system\fonts\DroidSans.ttf
   \system\fonts\DroidSansFallback.ttf
   \system\fonts\DroidSansMono.ttf

   \system\framework
   framework主要是一些核心的文件,从后缀名为jar可以看出是是系统平台框架。

   \system\framework\am.jar
   \system\framework\am.odex
   \system\framework\android.awt.jar AWT库
   \system\framework\android.awt.odex

   \system\lib
   lib目录中存放的主要是系统底层库,如平台运行时库。
   \system\lib\libaes.so 
   \system\lib\libagl.so
   \system\lib\libandroid_runtime.so Android运行时库
   \system\lib\libandroid_servers.so系统服务组件
   \system\lib\libaudio.so 音频处理
   \system\lib\libaudioeq.so EQ均衡器
   \system\lib\libaudioflinger.so 音频过滤器
   \system\lib\libbluetooth.so 蓝牙组件
   \system\lib\libc.so
   \system\lib\libcamera.so 超相机组件
   \system\lib\libcameraservice.so
   \system\lib\libcorecg.so
   \system\lib\libcrypto.so 加密组件

   \system\media
   铃声音乐文件夹,除了常规的铃声外还有一些系统提示事件音
   \system\media\audio
   \system\media\audio\alarms 闹铃音
   \system\media\audio\notifications提示音
   \system\media\audio\ringtones 铃声
   \system\media\audio\ui 界面操作事件音

   \system\sounds
   默认的音乐测试文件,仅有一个test.mid文件,用于播放测试的文件。
   \system\sounds\test.mid
   \system\usr
   用户文件夹,包含共享、键盘布局、时间区域文件等。
   \system\usr\keychars
   \system\usr\keylayout
   \system\usr\share
   \system\usr\srec

根文件下各子目录可参考:http://www.cnblogs.com/yyyyy5101/archive/2011/06/16/2082856.html

什么是包名

转载自百度https://zhidao.baidu.com/question/399875541157013725.html
包名是唯一的,只表示apk文件的名称。有的软件在使用中会建立包名的文件夹,然后在里面存放数据。

比如“手机QQ”,包名就是com.tencent.mobileqq。软件安装完后,在/data/app(不是/system/data/app)目录下的就是软件的包名。后面-1,-2,就是第一次安装或者更新安装的意思。

Java包命名规范:
包(packages): 采用反写域名命名规则,即com.xx.xxx.xxxx形式,全部使用小写字母。一级包名为com,二级包名为xx(一般为公司或个人域名),三级包名根据应用进行命名,四级包名为功能模块名。
如:com.tencent.qq.activitys,这样具备较高可读性,一看就知道是腾讯公司QQ软件中存放activity的包

Androidmanifest.xml是什么文件,包含哪些功能

转载自百度
AndroidManifest.xml文件是整个应用程序的信息描述文件,定义了应用程序中包含的Activity,Service,Content provider和BroadcastReceiver组件信息。每个应用程序在根目录下必须包含一个AndroidManifest.xml文件,且文件名不能修改。

AndroidManifest.xml文件主要提供了如下的信息描述:
1、命名应用程序的java包,这个包名将用来唯一标识这个应用程序。
2、描述了应用程序中包含的Activity,Service,ContentProvider和BroadcastReceiver组件
3、定义了应用程序运行的进程
4、声明了应用程序需要访问受限API所需的权限
5、声明其他程序如果希望访问本程序组件所需要的权限
6、声明应用程序能够正常运行所需要的最小级别的OphoneAPI
7、列出应用程序运行所需要连接的库
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值