当前位置:文档之家› 第一行代码Android学习笔记完全版

第一行代码Android学习笔记完全版

第一行代码Android学习笔记感谢《第一行代码》,感谢郭霖博主,拯救我于水火。

之前看视频学习Android,自以为已经小成了。

在网易工作的朋友问了我几个问题,我就懵逼了。

然后,遇到了《第一行代码》,终于把我带进了Android的世界。

好书,真的会醉人啊。

这是学习第二遍时的部分笔记,以备后用。

这是第二版,比第一版增加了一些常用的方法。

hujunjob于北航2015.04.02目录第一章Android系统 (6)1.1 安卓系统架构 (6)1.2 Android 项目中的资源 (6)第二章Activity (6)一、创建Activity步骤: (6)二、采用Intent切换activity (7)1、显式Intent (7)2、隐式Intent (7)3、隐式Intent的其他用法 (8)三、Intent传递数据 (8)1、向下一个activity传递数据 (8)2、返回数据给上一个activity (8)四、activity的生命周期 (9)1、活动状态 (9)2、activity生存期 (9)3、activity被回收数据保存 (11)五、activity的启动模式 (11)六、activity最佳实践 (11)1、知道当前页面是哪一个activity (11)2、随时随地退出程序 (11)3、给每个activity都添加一个合适的启动方法 (13)第三章UI (13)一、常用控件 (13)1、TextView (13)2、Button (13)3、EditText (13)4、ImageView (14)5、ProgressBar (14)6、AlertDialog (14)7、ProgressDialog (15)二、基本布局 (15)1、LinearLayout (15)2、RelativeLayout (15)3、FrameLayout (15)4、TableLayout (15)5、GridLayout (16)三、自定义控件 (16)1、添加自定义标题布局(无操作的) (16)2、创建自定义控件 (16)四、ListView (17)1、最简单的Adapter (17)2、定制ListView界面 (18)3、提升ListView效率 (19)4、ListView点击事件 (20)五、单位和尺寸 (20)六、最佳实践——聊天界面 (21)第四章Fragment (21)第五章BroadCast Receiver (24)一、广播机制 (24)二、接收系统广播 (24)1、动态注册 (24)2、静态注册 (25)3、广播接收器使用注意事项 (26)三、发送自定义广播 (26)1、标准广播 (26)2、有序广播 (27)四、发送和接收本地广播 (27)五、强制下线 (27)注意事项: (27)第六章数据存储 (28)一、文件存储 (28)1、存储5部曲: (29)2、读取5部曲: (29)二、SharedPreferences存储 (31)1、存储4部曲 (31)2、读取2部曲 (31)三、SQLite数据库 (31)1、创建数据库 (31)2、升级数据库 (32)3、添加数据 (33)4、更新数据 (33)5、删除数据 (33)6、查询数据 (33)7、直接使用SQL操作数据库 (33)四、数据库最佳实践 (34)1、使用事务 (34)2、升级数据库最佳写法 (35)第七章Content Provider (36)一、简介 (36)二、访问已有的CP (36)1、ContentResolver用法 (36)2、读取系统联系人 (37)三、创建自己的ContentProvider (38)1、创建CP步骤5部曲 (38)四、跨程序数据共享实践 (40)附录:Git使用 (41)一、创建代码仓库 (41)二、提交本地代码 (42)三、忽略文件 (42)四、查看修改内容 (42)五、撤销未提交的修改 (43)六、查看提交记录 (44)第八章多媒体 (44)一、通知 (44)1、通知创建 (44)2、通知点击事件 (45)3、通知的其他属性 (45)二、短信 (46)1、接收短信 (46)2、拦截短信 (46)3、发送短信 (46)三、调用摄像头和相册 (46)四、播放多媒体 (46)第九章Service (46)一、Service介绍 (46)二、多线程 (47)1、线程基本用法 (47)2、在子线程中更新UI (47)3、异步消息处理机制 (48)4、AsyncTask (49)三、Service (50)1、定义Service (50)2、启动和停止Service (51)3、Activity与Service通信 (51)四、Service的生命周期 (53)五、Service更多技巧 (53)1、前台Service (53)2、傻瓜方式使用Service—IntentService (54)六、后台执行的定时任务 (54)第十章网络技术 (56)一、WebView (56)二、使用HTTP协议访问网络 (56)1、使用HttpURLConnection (56)2、使用HttpClient (59)三、解析XML格式数据 (61)1、Pull解析方式 (61)2、SAX解析方式 (63)四、解析JSON格式数据 (64)1、JSONObject (64)2、GSON (65)五、网络编程最佳实践——java的回调机制 (66)第十一章LBS (68)附录:Git的高级用法 (69)一、分支用法 (69)二、与远程版本库协作 (70)第十二章传感器 (71)第十三章Android高级技巧 (71)一、全局获取Context的技巧 (71)二、使用Intent传递对象 (72)1、Serializable方式 (72)2、Parcelable方法 (72)三、定值自己的日志工具 (73)四、调试Android程序 (74)五、编写测试用例 (74)1、创建测试工程 (74)2、进行单元测试 (75)第十四章实战 (75)第一章Android系统1.1 安卓系统架构Linux Kernel: 各种底层驱动Libraries : Runtime Libraries, Dalvik VM, 各种库支持,数据库,3D绘图,浏览器内核Application Framework: API,各种managerApplications1.2 Android 项目中的资源src: 各种java程序在此,包括主程序gen: 最重要的是R.java,所有res资源都在这里编号,通过R.xx.xx或@xx查询res: 各种资源都在这里,包括drawable, layout, values等另外还有menifest文件,统筹兼顾全局的,Android四大组件都要在此注册。

第二章ActivityActivity是包含用户界面的组件,用于和用户进行交互。

一、创建Activity步骤:1、首先,创建没有Activity的application,发现src文件夹是空的。

手动创建一个包com.example.demo1activity,在包中添加一个class,MainActivity.java。

要使用activity,extents Activity。

此时,重写Activity的onCreate()方法。

2、此时,只有activity,用户是不可见的。

因此,需要在上面添加layout和view。

在res layout 中添加一个Android XML file,可以在该xml文件中创建布局。

添加诸如TextView/Button等常用控件。

3、此时,需要将创建的layout文件加载到activity中,在第一步创建的MainActivity中onCreate()方法中,使用setContentView(yout.myactivity)将布局加载进来。

4、所有四大组件的使用,都需要在AndroidManifest.xml文件中注册。

注册方法为:在<application>中添加<activity>标签,将需要注册的activity使用android:name=".MainActivity"注册。

如果是主activity,即打开application时看到的activity,则需要添加<action android:name="android.intent.action.MAIN"/><category android:name="UNCHER"/>总体注册代码为:<activityandroid:name=".MainActivity"android:label="My App" ><intent-filter><action android:name="android.intent.action.MAIN" /><category android:name="UNCHER" /></intent-filter></activity>5、销毁activityfinish();二、采用Intent切换activity1、显式Intent首先,按照上面的步骤重新创建一个SecondActivity(记得注册),采用Intent实现跳转Intent intent = new Intent(MainActivity.this, SecondActivity.class);startActivity(intent);2、隐式Intent隐式Intent并不能实现直接跳转,需要指定两个条件(intent-filter):action和category。

如果在intent-filter中指定category为default的category,即android.intent.category.DEFAULT,则只需满足action条件即可。

intent-filter在注册activity时添加,注册方法如下:<activity android:name=".SecondActivity" ><intent-filter><action android:name="com.example.demo1activity.SECOND_START" /><category android:name="android.intent.category.DEFAULT" /></intent-filter></activity>跳转方法为:Intent intent=new Intent("com.example.demo1activity.SECOND_START");startActivity(intent);intentfilter中只能有一个action,但可以有多个category,满足其中一个category即可。

相关主题