开发者必备自学工具:

谷歌搜索:www.yundou.info

Android原版开发文档 (英文) Doc http://www.phoned.cn/docs/reference/android/view/View.html

Android原版开发文档 (英文) Doc 下载地址 http://www.phoned.cn/docs.zip 由于谷歌被封杀网页相关谷歌API无法调用打开会非常卡建议断网或FQ后使用。

2015-12-24

View 组件:

绝大多数的android基础控件都存在包android.widget,android.view 及其子包中。

所有的UI基础组件都继承了View类,view是一个空白的panel 板。

ViewGroup 具有view的功能,通常用作view的容器,而其又是抽象类,为了减少方法复写通常使用ViewGroup的子类作为容器。

ViewGroup通过它自身的内部类LayoutParams,MarginLayoutParams的XML方法来控制放在其容器内部的组件布局。

开发者可以通过继承View类并实现其方法,自定义个性化的UI组件。通常重写View构造函数这种基本的方式实现。

继承自View的类重写其方法,该类生成的对象将按照重写的方法来生成相应的形状或者效果。

如果使用R引用控件或文件时无法找到已经创建的控件时,查看引入的R文件是否是当前包的R文件。

//////////////////////////////////////////////////////////////////////////////////////////////////////

2015年12月25日

再探布局:

LinearLayout 流式布局,组件可按照横向或纵向先后顺序排列,组件之间会相互推挤,由于屏幕大小有限,有时有的控件会推挤到屏幕外而无法看到该控件。

GridView网格布局,指定行列后添加View控件、。

TableLayout 表格布局,无需事先指定行列,添加行数后,在行控件中添加子控件。

FrameLayout 帧布局,各个控件会按照加载顺序会叠加在一起。

RelativeLayout 关系布局,各个控件的位置由其他控件的位置作为参考来摆放。

AbsoluteLayout 绝对布局,控件的位置由开发者自己决定,严格的按照x,y坐标来摆放控件。

//////////////////////////////////////////////////////////////////////////////////////////////////////

2015年12月26日

深入Activity

众多的Activity组成Activity栈,当前活动的Activity处于栈顶。

通过继承关系图可知:Activity间接的继承了context,contextwrapper,contextthemewrapper等基类。

什么是回调:在特定时刻会发生的调用行为,例如回调函数。A调用B去处理相关事务,B在处理事务时需要A提供一个处理事务的函数C,C则称为回调函数,为什么A不直接去处理而让B去处理,在处理过程中B可能不只是处理A的事务,还处理其它类型的事务,在处理各种类型的事务的过程中底层某些实现逻辑是一致的,所以封装了B,减少了冗余的底层实现代码,对于一个具有通用性质的程序架构来说,程序完成整个应用的通用功能,流程,但是在特定的点上,需要执行开发者自定义的与软件业务相关的代码,这段代码”因人而异”而通用程序构架无法完成这段代码。

程序内部逻辑执行完成后需要调用该段由开发者自定义的函数或代码来实现特定的功能,通常有两种方式完成这段功能代码的编写:一种是以接口的新式,复写其回调方法以嵌入自己的代码。另一种是通过继承基类的抽象或非抽象的类方法,复写其抽象或非抽象类方法完成代码嵌入。

//////////////////////////////////////////////////////////////////////////////////////////////////////2015年12月27日

理解intent相关

Android使用同一的intent模型来封装模块间的启动,为各个模块组件提供了统一的编程模型。

ComponentName(A1,A2);A

参数A1代表A1所对应的包,A1可以是String、Context。

参数A2代表组件,A2可以是String、class。

Intent属性 action和category是一个设置静态字符串的方法,action方法代表intent需要完成的行为(打开,查看等),category方法为action提供附加信息。

Intent设置了category和action结合的方法后只是定义了intent的行为和该行为附加信息,并没有指定执行这一行为的对象,通过intent-filter来控制执行对象,在Manifest中配置Activity的Intent-filter,该Activity就有可能被启动。

通过intent-filter来指定动作的执行者,从而切断了行为与执行者之间的粘合,行为和执行者之间是可插拔的关系,如此设计降低程序的耦合度。

//////////////////////////////////////////////////////////////////////////////////////////////////////

2015年12月29日(补一章)

Android资源操作

Android目录下的res目录中存放的资源会自动在R文件中生成索引,在代码中可以直接引用。Assets也是存放资源的目录,存放的是android无法直接访问的原生资源,需要使用AssetsManager已二进制流读取。

在XML代码中使用@符号引用的标识符号除了系统定义的资源名称还外可以在XML资源文件中使用name标签自定义资源名称。

尺寸,颜色,字符串资源,定义在res下的value文件夹中,使用@符号引用资源时格式为例如:@string/title即引用了value下的string文件下name为title的item的值。

XML资源中的数组,在XML根标签<resource>下定义的三种数组形式:<array>普通型<string-array>字符串型<integer-array>整形数组。

根标签<layer-list>是LayerDrawable的XML声明格式,其内部包含的是Drawable对象(drawable=XXX),可以包含多个Drawable。绘制顺序根据索引大小依次绘制。

五大资源特效控件 StateListDrawable, LayerDrawable, ShapeDrawabe, ClipDrawable, AnimationDrawable。

StateListDrawable  根标签<seloctor>设置控件事件发生变化时起作用。

LayerDrawable 根标签<Layer>根据Drawable对象绘制图形。

ShapeDrawable 根标签<Shape>设置控件视觉效果,例如 圆角,填充,边线,渐变。

ClipDrawable 根标签<Clip>截取图片特定位置的片段。

AnimationDrawable 根标签<set>设置一个动画资源。

原始XML:保存一些初始化参数或者小量的配置信息,大量信息可以考录使用SQLite。

要求:是一份语法符合XML规范的文件。

通过XML解析类XmlResourceParser的方法getXml(int id)获取XmlPullParser对象来进行XML相关操作。

使用InputStream类的方法openRawResource方法可获取XML输入流。

菜单资源./res/menu 根标签<menu>通过设置其内嵌的元素项来设置菜单的内容。

通过重写上下文菜单方法onCreateContextMenu可以将菜单资源文件载入作为一个上下文菜单,也可以用于其他地方,手法类似。

Android中定义theme主题资源。

控件风格控制:根标签<resource>通过子标签<style>添加属性。子标签<style>可通过name指定样式名称,parent指定继承项。

Activity主题控制:Activity主题XML格式类似风格控制的写法,item项多采用系统函数android:WindowXXX书写的形式。

通过activity的setTheme方法可为单个activity设置主题,统一设置主题可在manifest中设置。

Attribute属性资源,根标签<resource>,attr为子元素,declare-styleable为属性的集合。

代码中通过AttributeSet方法获取属性。

Attribute对对象的属性进行托管,规范化对象属性。

使用属性时通过在项目XML布局中导入attribute所在的包。命名空间:xmlns:xxx.android.com/apk/res/packge

Android程序国际化的主要类:ResourceBundle,locale,翻译文件以KEY-VAR键值对形式存放,通过native2veascii将其转化为Unicode格式。

Android程序国际化也可以通过res下建立不同语言命名的文件夹(value-zh-rCN)的String.xml键值对(<string name=”ok”>好</string>)来实现。、

//////////////////////////////////////////////////////////////////////////////////////////////////////

图形与图像处理(主要靠动手)

Bitmap代表一张位图,BitmapDrawable封装了Bitmap对象。

访问android程序自身以外的路径中的图像需要需要使用BitmapFactory来解析创建bitmap对象。

创建bitmap对象往往需要占用设备内存,bitmap对象方法isRecycle()方法判断是否已经回收recycle()方法则强制回收。

继承view组件重写onDraw方法即可实现绘画。

Canvas代表画布,paint代表画笔。使用它们各自的方法可以实现绘画不同效果。

Path代表任意多条子线链接而成的任意图形。它可以预先在view上将N个点链接成一条路径,然后使用canvas的drawPath方法沿路径绘制图形。

PathEffect定义绘制的效果。

Matrix是android提供的一个矩阵工具类,结合其它API来控制图形组件的变换。

//////////////////////////////////////////////////////////////////////////////////////////////////////

2016年1月1日(补两章)

Android数据存储于IO流

SharedPreferences 接口以键值对的形式:用于保存少量信息,例如配置信息,软件相关外存。

SharedPreferences提供了一系列对外存文件的读写操作。

SharedPreferences内部接口Editor提供了数据的写入和清除方法。

SharedPreferences本身是一个接口,无法使用new方法生成其对象,强行使用new方法生成其对象则会写成内部类形式。使用context.getSharedPreferences();获取对象。

Context提供了一组读取当前应用程序的数据文件夹下文件的IO文件流:openFileInput openFileOutput。

读写SD卡文件:Environment getExternalStorageState();判断SD卡状态。

GetExternalStorageDirectory()获取SD卡目录。

使用FileInputStream FileOutputStream FileReader FileWriter方法对文件进行读写。

后记:学习至此只看书然而并没有什么卵用,光领会内容是不够的,工科资料需要边领会边实战,还有如果不能坚持的话前面干得再多也将会很快忘记。2016年1月2日

疯狂安卓Android自学笔记的更多相关文章

  1. Android自学笔记:Git下载源代码

    Info:做J2ME几年了,现在基本没有公司用了,是时候向Android领域进军了. 自学中,难免会有疏漏,有问题请及时提出,共同学习共同进步. 2014-10-13:初版 2014-10-14:添加 ...

  2. Android自学笔记:环境配置

    Info: 自学Android之旅第二篇,初步学习会有疏漏,以后我会不断修改补全,直到完美. 2014-10-09:初版 2014-11-12: 重新配置了一台电脑,更新在学习robotium过程中, ...

  3. android自学笔记(1):android简介

    Android是一种基于Linux的自由及开放源代码的操作系统,主要使用于移动设备,如智能手机和平板电脑,由Google公司和开放手机联盟领导及开发.尚未有统一中文名称,中国大陆地区较 多人使用“安卓 ...

  4. android自学笔记一

    android是什么我自闭不必多说,我们挑精华整理 一.android体系架构: android从下而上分为四层: (1)分别是linux操作系统及驱动(C语言实现) (2)本地代码(C/C++)框架 ...

  5. android 应用笔记

    android 应用笔记 android 应用笔记 小书匠 Android 综合教程 Android常用技巧 安卓系统架构 安卓源码开发 安卓驱动 Linux内核 安卓应用开发 Java 教程 tic ...

  6. 安卓第九天笔记-Activity

    安卓第九天笔记-Activity 1.创建Activity 一个界面对应一个activity 创建一个Activity  1.写一个JAVA类,继承Activity publicclass CalcA ...

  7. [置顶] Android开发笔记(成长轨迹)

    分类: 开发学习笔记2013-06-21 09:44 26043人阅读 评论(5) 收藏 Android开发笔记 1.控制台输出:called unimplemented OpenGL ES API ...

  8. 《Linux内核设计与实现》课本第四章自学笔记——20135203齐岳

    <Linux内核设计与实现>课本第四章自学笔记 进程调度 By20135203齐岳 4.1 多任务 多任务操作系统就是能同时并发的交互执行多个进程的操作系统.多任务操作系统使多个进程处于堵 ...

  9. 《Linux内核设计与实现》课本第三章自学笔记——20135203齐岳

    <Linux内核设计与实现>课本第三章自学笔记 进程管理 By20135203齐岳 进程 进程:处于执行期的程序.包括代码段和打开的文件.挂起的信号.内核内部数据.处理器状态一个或多个具有 ...

随机推荐

  1. Convert.ToInt32()和int.Parse()的区别

    (1)Convert.ToInt32(null)会返回0而不会报异常,但int.Parse(null)则会产生异常 (2)Convert.ToInt32("")和int.Parse ...

  2. ​C语言数组作为函数参数

    数组可以作为函数的参数使用,进行数据传送. 数组用作函数参数有两种形式,一种是把数组元素(下标变量)作为实参使用:另一种是把数组名作为函数的形参和实参使用. 数组元素作函数实参 数组元素就是下标变量, ...

  3. 外部主机连接mysql服务器延时严重问题

    1.原因:由于mysql对连接的客户端进行DNS反向解析 2.禁用dns解析,在 /etc/my.cnf 中加入skip-name-resolve 3.反向解析说明: 所谓反向解析是这样的:mysql ...

  4. Hdu1093

    #include <stdio.h> int main() { int T,n; ; while(scanf("%d",&T)!=EOF){ while(sca ...

  5. iOS数据持久化 -- Core Data-备用

    Core Data是一个功能强大的层,位于SQLite数据库之上,它避免了SQL的复杂性,能让我们以更自然的方式与数据库进行交互.Core Data将数据库行转换为OC对象(托管对象)来实现,这样无需 ...

  6. [TYVJ] P1238 路径

    路径 描述 Description 图是由一组顶点和一组边组成的.一条边连接两个顶点.例如,图1表示了一个有4个顶点V.5条边的图.图中,每条边e是有方向的,方向从起点到终点,并且每条边都有价值.用整 ...

  7. 手把手教你清除WIN7的C盘垃圾

    WIN7系统用着用着C盘会变得越来越大,可用空间变得越来越小,磁盘清理,和安全卫士怎么清也清不出这些系统深度的垃圾.我们可以手动删除,释放C盘空间. 这样一清理下来,结果我的C盘就释放了近10个GB的 ...

  8. scaletype

    http://www.myexception.cn/image/726203.html 图片说明Andorid中ImageView的不同属性ScaleType的区别 ImageView是Android ...

  9. BZOJ 2521 最小生成树(最小割)

    http://www.lydsy.com/JudgeOnline/problem.php?id=2521 题意:每次能增加一条边的权值1,求最小代价让一条边保证在最小生成树里 思路:如果两个点中有环, ...

  10. ASP.NET MVC3快速入门——第五节、从控制器访问模型中的数据

    5.1 从控制器访问模型中的数据在本节中,我们将创建一个新的MoviesController类,并且书写代码来获取数据库中的数据,并通过视图模板来显示在浏览器中.鼠标右击Controller文件夹,点 ...