`
liu1028701143
  • 浏览: 34736 次
  • 性别: Icon_minigender_1
最近访客 更多访客>>
社区版块
存档分类
最新评论

Android学习-应用与开发环境(一)

阅读更多

工程;

1、 src文件夹存放源码。

2、 gen下有跟src中一样的包文件,内部有一个名为R.java类,它是自动生成的一个类;该目录不用我们开发人员维护, 但又非常重要的目录 。 该目录用来存放由 Android 开发工具所生成的目录 。 该目录下的所有文件都不是我们创建的,而是由系统自动生成的。这个R,javav文件是只读类型,用户一般式不需要修改的!

R.java 文件中默认有 attr 、 drawable 、 layout 、 string 等四个静态内部类 , 每个静态内部类分别对应一种资源,layout 静态内部类对应layout 中的界面文件main.xml,其中每个静态内部类中的静态常量分别定义一条资源标识符,如 “ publicstatic final int main =0x7f030000; ” 用一个十六进制的数来代表常量,当开发者在res文件夹下添加或删除任何一个文件或一个属性,R.java都会随之进行更新!

3、 android 2.3.3/ 文件夹表明了开发环境的版本,内部存放 Android 自身的 jar 包。

4、 assets/该目录用来存放应用中用到的类似于视频文件、 MP3 一些媒体文件。

5、 res/ 该目录为资源目录 。该目录可以存放一些应用图标、界面文件、应用中用到的文字信息等。

res/目录下有三个 dawable 文件夹 , 区别只是将图标按分辨率高低来放入不同的目录中 ,drawable-hdpi存放高分辨率的图标, drawable-mdpi存放中等分辨率的图标, drawable-ldpi存放低分辨率的图标 。 程序运行时可以根据手机分辨率的高低选取相应目录下的图标。

值得注意的是:

如果是老版本的,比如是1.5版本的,res下的drawable文件夹只有一个,如需修改需要手动添加,

res/目录下layout/的文件main.xml是布局文件,

main.xml

<? xml version = "1.0" encoding = "utf-8"?>

< LinearLayout xmlns:android = "http://schemas.android.com/apk/res/android"

android:orientation = "vertical"

android:layout_width = "fill_parent"

android:layout_height = "fill_parent"

>

< TextView

android:layout_width = "fill_parent"

android:layout_height = "wrap_content"

android:text = "@string/hello"

/>

</ LinearLayout >

<LinearLayout>

“LinearLayout ”代表的是 “ 线性布局 ” ,所谓线性布局就是在该元素下的所有子

元素会根据其 “ orientation ” 属性的值来决定是按行或者是按列逐个显示。

<TextView >

该元素与 HTML 中的 < label> 元素比较相似。也是一种显示文本的控件。

另外:此文件里还可以自定义的添加开发所需要的其他的控件。

values/下的strings.xml文件

用来定义字符串和数值

HelloWorld 项目的 strings.xml 文件内容如下:

<? xml version = "1.0" encoding = "utf-8"?>

< resources >

< string name = "hello" > Hello World,HelloActivity! </ string >

< string name = "app_name" > haozi</string >

</ resources >

每个 string 标签声明了一个字符串,name 属性指定其引用名。

AndroidManifest.xml: 该文件是功能清单文件,该文件列出了应用中所使用的所有组件;

AndroidManifest.xml

<? xmlversion = "1.0" encoding = "utf-8" ?>

<manifest xmlns:android = "http://schemas.android.com/apk/res/android"

package ="com.sharpandroid.activity" 命名应用程序的 Java 应用包

android:versionCode= "1" 声明android的版本

android:versionName= "1.0" >

<application android:icon = "@drawable/icon" 定义应用的图标

android:label= "@string/app_name" >定义显示的文本

<activity android:name = ".HelloActivity"

android:label= "@string/app_name" >

<intent-filter >

<action android:name = "android.intent.action.MAIN" /> 定义应用程序的入口

<category android:name = "android.intent.category.LAUNCHER" /> 定义程序的列表显示

</intent-filter >

</activity >

</ application >

< uses-sdkandroid:minSdkVersion = "7" /> 声明android开发所用的版本

1. <manifest> 元素

< manifest xmlns:android ="http://schemas.android.com/apk/res/android"

package ="com.sharpandroid.activity"

android:versionCode = "1"

android:versionName = "1.0" >

该元素是 AndroidManifest.xml 文件的根元素,“xmlns:android ”指 定 该 文 件 的 命 名 空 间 。 功 能 清 单 文 件 会 使 用 “http://schemas.android.com/apk/res/android” 所指向的一个文件 。 “ package ” 属性是指定 Android 应用所在的包“android:versionCode ”指定应用的版本号。

2. <application> 元素

<application> 的“ icon ”属性是用来设定应用的图标。该表达式指向的是png 图片。

<application> 的 “ label ” 属性用来设定应用的名称。指定其属性值所用的表达式

“ @string/app_name ”含义与上面的表达式“ @drawable/icon ”一样,同样是指向 R.jav a文件中的 string 静态内部类中的 app_name 属性所指向的资源。在这里它指向的是

“ strings.xml ”文件中的一条记录“ app_name ”,其值为 “ hello world! ” ,

3. <activity> 元素

<activity> 元素的作用是注册一个Activity 信息, 当我们在创建 “ HelloWorld ” 这个项

目时,指定了【Create Activity 】属性为“ HelloActivity ”,之后 ADT 在生成项目时帮我们自动创建了一个 Activity 名称就是“ HelloActivity.java ”, Activity 在 Android 中属于组件,它需要在功能清单文件中进行配置。

<activity> 元素的 “ name ” 属性指定的是该 Activity 的类名 。 我们可以看到这个属性值“.HelloActivity ”中的 “ . ” , “ . ” 代表的是在上面<manifest> 元素的“ package ”属性中指定的当前包。因而“ .HelloActivity ”的含义等价于“ com.sharpandroid.activity.HelloActivity.java ” 。如果 Activity 在应用的包中 , 则这个 “ . ” 可以去掉 , 但如果 Activity 不在应用的包中 ,而在应用的包的子包当中,如下图中的 OtherActivity 这个 Activity 配置时必须这么写“ .sub.OhterActivity ”, “ . ” 不可省略。因此建议在书写时不论何种情况都加上 “ . ” ,以免出错。

 

Activity 只能放在 “ 应用的包 ” 或者其子包里面,而不能在 “ 应用的包 ” 以外的包中 。这一点必须牢记。

4. <intent-filter> 元素

翻译成中文是“ 意图过滤器 ” 。首先要知道什么是意图( Intent ) 。应用程序的核心组件 ( 活动 、 服务和广播接收器 ) 通过意图被激活 , 意图代表的是你要做的一件事情 , 代表你的目的 , Android 寻找一个合适的组件来响应这个意图 , 如果需要会启动这个组件一个新的实例,并传递给这个意图对象。后面会有详细的介绍,在此只需有大致印象即可。组件通过意图过滤器( intent filters )通告它们所具备的功能—— 能响应的意图类型 。由于 Android 系统在启动一个组件前必须知道该组件能够处理哪些意图 , 那么意图过滤器需要在 manifest 中以<intent-filter> 元素指定。 一个组件可以拥有多个过滤器 , 每一个描述该组件所具有的不同能力 。 一个指定目标组件的显式意图将会激活那个指定的组件 , 意图过滤器不起作用 。 但是一个没有指定目标的隐式意图只在它能够通过组件过滤器任一过滤器时才能激活该组件。

第一个过滤器——

<action android:name="android.intent.action.MAIN" />

<category android:name="android.intent.category.LAUNCHER" />

是最常见的。它表明这个 activity 将在应用程序加载器中显示,就是用户在设备上看到的

可供加载的应用程序列表。换句话说,这个 activity 是应用程序的入口,是用户选择运行这个应用程序后所见到的第一个 activity 。

5. 权限 Permissions

Permissions是一个非常重要的节点,Permission是代码对设备上数据的访问限制,这个限制被引入来保护可能会被误用页破坏用户体验的关键数据和代码。如拨号服务,短信服务等。每个许可被一个唯的标签所标识,这个标签常常指出了受限的动作。

一个功能( feature )最多只能被一个权限许可保护。如果一个应用程序需要访问一个

需要特定权限的功能,它必须在 manifest 元素内使用 <uses-permission> 元素来声明这一点。 这样 , 当应用程序安装到设备上之后 , 安装器可以通过检查签署应用程序认证的机构来决定是否授予请求的权限 , 在某些情况下 , 会询问用户 。 如果权限已被授予 , 那应用程序就能够访问受保护的功能特性 。 如果没有 , 访问将失败 , 但不会给用户任何通知 。 因此我们在使用一些系统服务,如拨号、短信、访问互联网、访问 SDCard 时一定要记得添加相应的权限,否则会出现一些难以预料的错误。

7、 / manifest >Procuard.cfg混淆器,进行加密和压缩代码,java代码编译成class文件,java代码也很规范,有时候代码不想让别人知道,就利用混淆器把源代码编译时改了,把那些名字改的乱其八糟的,使人无法阅读,它会把那些长名字改成a了b了,这样就减少字节了压缩了代码!!

8、 Project.properites配置文件版本信息。

 

分享到:
评论

相关推荐

    setuptools-41.0.0-py2.py3-none-any.whl

    Node.js,简称Node,是一个开源且跨平台的JavaScript运行时环境,它允许在浏览器外运行JavaScript代码。Node.js于2009年由Ryan Dahl创立,旨在创建高性能的Web服务器和网络应用程序。它基于Google Chrome的V8 JavaScript引擎,可以在Windows、Linux、Unix、Mac OS X等操作系统上运行。 Node.js的特点之一是事件驱动和非阻塞I/O模型,这使得它非常适合处理大量并发连接,从而在构建实时应用程序如在线游戏、聊天应用以及实时通讯服务时表现卓越。此外,Node.js使用了模块化的架构,通过npm(Node package manager,Node包管理器),社区成员可以共享和复用代码,极大地促进了Node.js生态系统的发展和扩张。 Node.js不仅用于服务器端开发。随着技术的发展,它也被用于构建工具链、开发桌面应用程序、物联网设备等。Node.js能够处理文件系统、操作数据库、处理网络请求等,因此,开发者可以用JavaScript编写全栈应用程序,这一点大大提高了开发效率和便捷性。 在实践中,许多大型企业和组织已经采用Node.js作为其Web应用程序的开发平台,如Netflix、PayPal和Walmart等。它们利用Node.js提高了应用性能,简化了开发流程,并且能更快地响应市场需求。

    Google Cloud Storage(使用gsutil下载)

    Google Cloud CLI安装包GoogleCloudSDKInstaller.exe

    setuptools-18.3.zip

    Node.js,简称Node,是一个开源且跨平台的JavaScript运行时环境,它允许在浏览器外运行JavaScript代码。Node.js于2009年由Ryan Dahl创立,旨在创建高性能的Web服务器和网络应用程序。它基于Google Chrome的V8 JavaScript引擎,可以在Windows、Linux、Unix、Mac OS X等操作系统上运行。 Node.js的特点之一是事件驱动和非阻塞I/O模型,这使得它非常适合处理大量并发连接,从而在构建实时应用程序如在线游戏、聊天应用以及实时通讯服务时表现卓越。此外,Node.js使用了模块化的架构,通过npm(Node package manager,Node包管理器),社区成员可以共享和复用代码,极大地促进了Node.js生态系统的发展和扩张。 Node.js不仅用于服务器端开发。随着技术的发展,它也被用于构建工具链、开发桌面应用程序、物联网设备等。Node.js能够处理文件系统、操作数据库、处理网络请求等,因此,开发者可以用JavaScript编写全栈应用程序,这一点大大提高了开发效率和便捷性。 在实践中,许多大型企业和组织已经采用Node.js作为其Web应用程序的开发平台,如Netflix、PayPal和Walmart等。它们利用Node.js提高了应用性能,简化了开发流程,并且能更快地响应市场需求。

    罗兰贝格_xx业务计划与控制体系最终报告gltp.pptx

    罗兰贝格_xx业务计划与控制体系最终报告gltp.pptx

    基于JSP医院在线挂号管理系统源码.zip

    这个是一个JSP医院在线挂号管理系统,管理员角色包含以下功能:管理员登录,医生用户管理,修改密码,科室类别信息管理,医生信息管理,添加医生信息,查询医生信息,注册用户管理,黑名单管理,预约信息管理,查询预约信息,医生预约查询,预约信息统计,科室汇总统计等功能。患者角色包含以下功能:查看首页,患者登录,修改密码,修改个人资料,查看预约信息,查看医生信息,查看科室分类,医生查询,预约医生等功能。… 本项目实现的最终作用是基于JSP医院在线挂号管理系统 分为4个角色 第1个角色为管理员角色,实现了如下功能: - 修改密码 - 医生信息管理 - 医生用户管理 - 医生预约查询 - 查询医生信息 - 查询预约信息 - 注册用户管理 - 添加医生信息 - 科室汇总统计 - 科室类别信息管理 - 管理员登录 - 预约信息管理 - 预约信息统计 - 黑名单管理

    麦肯锡-年月―中国xx集团战略咨询项目建议书gltp.pptx

    麦肯锡-年月―中国xx集团战略咨询项目建议书gltp.pptx

    公开整理-各省碳排放数据集(1990-2022年).xlsx

    详细介绍及样例数据:https://blog.csdn.net/li514006030/article/details/138872006

    Screenshot_2024-05-14-22-47-39-925_com.alibaba.android.rimet.hznu.jpg

    Screenshot_2024-05-14-22-47-39-925_com.alibaba.android.rimet.hznu.jpg

    基于Python+Flask弹幕情感分析的直播高光时刻判断模型设计与系统实现+系统功能说明+全部资料齐全+部署文档.zip

    【资源说明】 基于Python+Flask弹幕情感分析的直播高光时刻判断模型设计与系统实现+系统功能说明+全部资料齐全+部署文档.zip基于Python+Flask弹幕情感分析的直播高光时刻判断模型设计与系统实现+系统功能说明+全部资料齐全+部署文档.zip 【备注】 1、该项目是个人高分项目源码,已获导师指导认可通过,答辩评审分达到95分 2、该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的,请放心下载使用! 3、本项目适合计算机相关专业(人工智能、通信工程、自动化、电子信息、物联网等)的在校学生、老师或者企业员工下载使用,也可作为毕业设计、课程设计、作业、项目初期立项演示等,当然也适合小白学习进阶。 4、如果基础还行,可以在此代码基础上进行修改,以实现其他功能,也可直接用于毕设、课设、作业等。 欢迎下载,沟通交流,互相学习,共同进步!

    Vue开发基于Vue + Node的外卖系统设计与实现【源码+lw+部署文档+讲解】

    内容概要:这个项目是基于Vue.js和Node.js的外卖系统的设计与实现,旨在帮助开发者通过实践掌握Vue.js和Node.js的应用,并了解外卖系统的开发流程和技术选型。该系统旨在提供一个完整的在线订餐平台,包括用户注册登录、浏览商家和菜单、下单支付、配送跟踪等功能,以提升用户的订餐体验。源码包含了前端Vue.js和后端Node.js的代码,部署文档详细介绍了系统的部署步骤和环境配置要求,讲解内容涵盖了系统的功能模块、技术选型理由、设计思路以及使用方法。 适合人群:对Vue.js和Node.js有一定了解,并希望通过实践项目提升技能的开发者。 能学到什么:①掌握Vue.js和Node.js的开发流程;②了解外卖系统的业务逻辑和实现方法;③学习前后端分离的开发模式;④了解部署和维护一个完整项目的流程。 阅读建议:本资源旨在帮助开发者通过实践项目掌握Vue.js和Node.js的应用,并了解外卖系统的开发流程。建议在学习过程中结合部署文档进行实践,并深入理解讲解内容中的技术原理和设计思路。同时,鼓励开发者根据实际需求对项目进行拓展和优化,以提升自己的技术水平。

    基于SSM+jsp的家居商城系统

    大学生毕业设计、大学生课程设计作业

    python企业编码管理的程序(可执行程序+源码).zip

    具体的操作步骤如下: (1)生成6位数字防伪编码。当用户在主程序界面中输入数字“1”菜单项时,将进入“生成6位数字防伪编码 (213563型)”的功能执行任务。此时要求输入生成防伪码的数量,可以根据需要输入生成防伪码的数量,如图2所示。按下<Enter>键,开始批量生成防伪码,生成后系统将提示用户生成了多少个注册码和生成文件的位置信息等,如图3所示。单击“确定”按钮,关闭提示信息。在屏幕上可以看到生成的防伪码信息,如图4所示。生成的文件在程序所在目录下的“codepath”文件夹下,名称为“scode1.txt”,如图5所示。

    Centos7-离线安装redis

    Centos7-离线安装redis

    基于JSP鲜花商城网站系统源码.zip

    这个是一个JSP鲜花商城网站系统,用户角色包含以下功能:用户登录与注册,修改个人信息,查看首页,查看分类,查看热销,查看订单,查看鲜花详情,加入购物车,提交订单等功能。管理员角色包含以下功能:订单管理,客户信息管理,鲜花管理,鲜花类目管理,管理员登录等功能。

    setuptools-3.5.1-py2.py3-none-any.whl

    Node.js,简称Node,是一个开源且跨平台的JavaScript运行时环境,它允许在浏览器外运行JavaScript代码。Node.js于2009年由Ryan Dahl创立,旨在创建高性能的Web服务器和网络应用程序。它基于Google Chrome的V8 JavaScript引擎,可以在Windows、Linux、Unix、Mac OS X等操作系统上运行。 Node.js的特点之一是事件驱动和非阻塞I/O模型,这使得它非常适合处理大量并发连接,从而在构建实时应用程序如在线游戏、聊天应用以及实时通讯服务时表现卓越。此外,Node.js使用了模块化的架构,通过npm(Node package manager,Node包管理器),社区成员可以共享和复用代码,极大地促进了Node.js生态系统的发展和扩张。 Node.js不仅用于服务器端开发。随着技术的发展,它也被用于构建工具链、开发桌面应用程序、物联网设备等。Node.js能够处理文件系统、操作数据库、处理网络请求等,因此,开发者可以用JavaScript编写全栈应用程序,这一点大大提高了开发效率和便捷性。 在实践中,许多大型企业和组织已经采用Node.js作为其Web应用程序的开发平台,如Netflix、PayPal和Walmart等。它们利用Node.js提高了应用性能,简化了开发流程,并且能更快地响应市场需求。

    备自投动作不成功事故处理tp.pptx

    备自投动作不成功事故处理tp.pptx

    基于JSP户籍管理系统源码.zip

    这个是一个JSP户籍管理系统,管理员角色包含以下功能:管理员登陆,户籍管理,迁入管理,迁出管理,反馈投诉管理等功能。用户角色包含以下功能:用户登陆,户籍信息查看,迁入查询,反馈建议等功能。 本项目实现的最终作用是基于JSP户籍管理系统 分为2个角色 第1个角色为管理员角色,实现了如下功能: - 反馈投诉管理 - 户籍管理 - 管理员登陆 - 迁入管理 - 迁出管理 第2个角色为用户角色,实现了如下功能: - 反馈建议 - 户籍信息查看 - 用户登陆 - 迁入查询

    setuptools-36.4.0-py2.py3-none-any.whl

    Node.js,简称Node,是一个开源且跨平台的JavaScript运行时环境,它允许在浏览器外运行JavaScript代码。Node.js于2009年由Ryan Dahl创立,旨在创建高性能的Web服务器和网络应用程序。它基于Google Chrome的V8 JavaScript引擎,可以在Windows、Linux、Unix、Mac OS X等操作系统上运行。 Node.js的特点之一是事件驱动和非阻塞I/O模型,这使得它非常适合处理大量并发连接,从而在构建实时应用程序如在线游戏、聊天应用以及实时通讯服务时表现卓越。此外,Node.js使用了模块化的架构,通过npm(Node package manager,Node包管理器),社区成员可以共享和复用代码,极大地促进了Node.js生态系统的发展和扩张。 Node.js不仅用于服务器端开发。随着技术的发展,它也被用于构建工具链、开发桌面应用程序、物联网设备等。Node.js能够处理文件系统、操作数据库、处理网络请求等,因此,开发者可以用JavaScript编写全栈应用程序,这一点大大提高了开发效率和便捷性。 在实践中,许多大型企业和组织已经采用Node.js作为其Web应用程序的开发平台,如Netflix、PayPal和Walmart等。它们利用Node.js提高了应用性能,简化了开发流程,并且能更快地响应市场需求。

    Pro Docker/如何使用容器服务进行开发和部署

    如何使用容器服务进行开发和部署

    java班级管理系统.zip

    java班级管理系统

Global site tag (gtag.js) - Google Analytics