Developing Applications
Screen的层次
Screen elements由views和viewgroup组成。View包括Text, EditText, Button, ScrollView, checkbox, RadioButton,还有两个InputMethod和MomentMethod不知道为何用。ViewGroup是一群View和ViewGroup的组合,把他们当作一个整体来对待。每个ViewGroup都使用一个继承ViewGroup.LayoutParams的类来定义子View的大小和位置。需要注意的是子孩子的LayoutParams设置必须于父节点的设置相兼容。
通用Layout对象—
FrameLayout:单帧存放,新的内容将完全或局部覆盖旧的,除非新的为透明。
LinearLayout:直线式排列,可以通过android:orientation=”vertical” or “horizontal”来设置。通过padding来设置间隔。也支持weight,设置大小比例。默认为0。
TableLayout:不用多解释了。
AbsoluteLayout:通过(x,y)坐标绝对布局。
RelativeLayout:相对布局。相对某一个目标定位,指明那个目标的ID。例如toLeft:”okbutton”, below:”text”.
还有gallery, gridview, scrollview spinner, tabHost,ViewFlipper等等。
下面要谈到的是AdapterViews,用于对数据的绑定。通常的做法是通过id找到这个object,调用object.setAdapter()。可以设置为字符串的ArrayAdapter(),也可以查询数据库返回一个cursor,设置CursorAdapter()。处理用户响应事件和以前学的一样,设置一个OnItemClickListener,覆盖里面的OnItemClick()方法。
Android 使用在xml中配置界面的设计还是很强大的。还记得以前写俄罗斯方块,一个小小的界面就得写一大堆代码。乱七八糟的。不堪入目。现在好了,xml起码在格式上就显得很整齐,很有层次。
手机界面都有个主题。Android activity也提供了这个设置。类似于网页设计里的css。在manifest.xml中的application android:theme=”@android:style/theme.dark”。注意这里是style,而文件结构中的却是styles.xml不知道为什么这样设计。也可以在Oncreate()方法里面通过setTheme()来设置。关于画图,2D的提供了Surface,SurfaceView,Canvas很好用,但是不支持硬件加速。3D的提供了OpenGL ES,支持硬件加速。
数据的存取:
1、 preferences 使用key/value对来存取基本数据类型。类似于hashmap.是一种轻量级的方法。
2、 Files 存在设备上或者移动媒体上。
3、 数据库 最重要的一个。Android提供的sqlite数据库。每一个数据库对创建它的包都是私有的。
4、 ContentProviders 提供给外部应用程序读写访问的接口,暴露内部私有数据。但是要遵守制定的规则。
5、 NetWork 网络的力量是强大的。
下面谈到了权限的问题。对于一个application,在安装的时候,分配一个独立的Linux ID,以区别在同一个进程中不能有两个application运行,因为他们是不同的Linux Users。可以在manifest.xml中的manifest tag中指定sharedUserId属性来作为同一个application对待,这样一来,他们对文件又相同的访问权限了。但是为了保证安全性,只有具备了相同的签名,才能设定相同的userid。可以通过<uses-permission>设定权限。在安装application的时候会将这些权限加载,如果成功加载了,会按照预期的限制执行访问,如果没有加载,那么访问将会失败,而且没有任何提示,只有后台会抛出SecurityException。在这些情况下,permission会被强行检测。
1、 在调用一个系统的时候,防止系统内的一些方法执行。
2、 当启动一个activity时,防止一个application去启用其他application的activity。
3、 Intent Broadcasting.控制谁能接受你的broadcast和谁能向你发送broadcast。
4、 当访问和操作一个ContentProvider的时候
5、 绑定或开启一个服务
可以在自己的项目中创建permission,必须包括id, android:lable 和android:description三个属性。
Activity, service, IntentReceiver, ContentProvider都可以设置android:permission。你也可以在广播一个Intent的时候给它制定一个permission,通过Context.BoardcastIntent(String Intent,String Receiverpermission)带一个String的permission参数。
分享到:
相关推荐
### Android学习资源与知识点概述 在当今移动互联网时代,Android操作系统作为全球最广泛使用的移动设备平台之一,其重要性不言而喻。对于开发者而言,掌握Android开发技能不仅能够提升个人职业竞争力,还能够为...
Android学习系列教程实例文档涵盖了Android开发的核心知识点。它详细地介绍了从基础到高级技术的各个方面,旨在帮助开发者深入理解Android系统架构、开发过程以及优化技巧等。 首先,文档回顾了Android的发展历史,...
这篇博客"Android学习之路——4.Activity简介"很可能会详细解释Activity的基本概念、生命周期以及如何在实践中使用它。 Activity作为Android应用程序的一个窗口,它可以显示用户界面,并响应用户的交互。每个...
- **简介**:尽管土豆网主要作为一个视频分享平台而知名,但该链接指向了一个专注于Android学习的频道。这个频道可能包含了一系列关于Android开发的教学视频、教程和其他资源。 - **学习资源**: - 教程视频:涵盖...
本套学习资料旨在帮助初学者快速掌握Android开发的基本技能,内容涵盖Android开发中文文档以及一系列由eoeAndroid推出的特刊,为您的学习之路提供全面而深入的指导。 首先,我们关注的是《Android开发指南中文版....
从这份文档中,我们可以提炼出一系列关于Android学习与开发的关键知识点,这些内容不仅涉及了作者对Android系统的理解和评价,还涵盖了其个人的学习经历、技术成长路径以及对Android开发的深入探讨。 ### Android与...
【标题】:“Android学习日记-2 ASM android底层” 在Android开发中,深入理解系统的底层运作是提升技术能力的重要环节。ASM是一个强大的字节码操控和分析框架,它允许动态生成类或者增强已有类的功能,而无需知道...
【Android 学习精华】 Android 是一款开源的移动操作系统,起源于 Google 在 2007 年推出的项目,旨在创建一个开放且完整的移动设备软件平台。它由操作系统、中间件、用户界面以及一系列应用程序组成,是首个专为...
总结起来,本篇Android学习系列主要讲解了如何在Android应用中使用按钮来显示当前日期和时间。这涉及到布局设计、事件监听、日期和时间处理以及对话框的使用。通过这些基础知识的学习,开发者能够掌握基本的用户交互...
在Android学习过程中,掌握基础知识是至关重要的。"Android学习精要"这个压缩包文件很可能包含了大量关于Android开发的基础教程和代码示例,旨在帮助初学者快速理解和上手。以下是一些核心的Android知识点,这些内容...
首先,"Android入门教程"是开始Android学习之旅的关键。这个教程通常会介绍Android开发环境的搭建,包括安装Android Studio,这是Google官方推荐的集成开发环境(IDE)。在Android Studio中,你可以创建新的项目,...
《老罗的Android之旅》是一套深受Android开发者欢迎的学习资源,由知名技术讲师老罗精心制作。这个压缩包集合了该课程的多个关键主题的PPT文件,旨在为那些希望深入理解Android系统的开发者提供一站式学习材料。以下...
这个史上最详细的Android Studio系列教程,无疑是学习Android应用开发的宝贵资源。 一、Android Studio的基础设置与安装 Android Studio的下载可以在Google的官方网站上找到,它提供了Windows、macOS和Linux等多个...
"Android学习代码"这个压缩包包含了一系列与Android用户界面相关的代码示例,是学习和掌握Android UI布局的理想资源。让我们逐一解析这些文件所涵盖的知识点。 1. **Activity_test** 和 **Activity_test2**: 这些...
《Android学习手册》是一部全面深入探讨Android开发技术的综合指南,涵盖了从初学者入门到高级开发者精通所需的所有关键知识点。本手册旨在为Android开发者提供一个系统化的学习路径,帮助他们在Android开发领域建立...
这个名为“Android学习资料”的压缩包包含了一系列有助于理解Android开发核心概念的资源。以下是对每个文件内容的详细解释: 1. **Android高级编程.pdf**:这本书可能涵盖了Android开发的进阶主题,包括但不限于...
Android flutter学习系列类个人中心动画手势学习01案例