第一行代码Android学习笔记完全版
《第一行Android代码》课件:第一章 开始启程-你的第一行android代码

•
安卓开发者网站/
• Android Studio的引入:
• 2013年GoogleI/O大会首次发布了Android Studio IDE(Android平台集成开发环境)。它基于Intellij IDEA开 发环境,旨在取代Eclipse和ADT(Android开发者工具)为开发者提供更好的开发工具。既然Google一直在努力 推广,相信不久以后就有望赶上Eclipse。
配置和启动模拟器
广东药科大学 数字媒体技术系 GDPUDM
广东药科大学 数字媒体技术系 GDPUDM
广东药科大学 数字媒体技术系 GDPUDM
广东药科大学 数字媒体技术系 GDPUDM
完成配置
广东药科大学 数字媒体技术系 GDPUDM
启动虚拟机
广东药科大学 数字媒体技术系 GDPUDM
1.3.3 运行Helloworld
广东药科大学 数字媒体技术系 GDPUDM
广东药科大学 数字媒体技术系 GDPUDM
选择目标设备 这里我们选择手机,并为其 指定最小SDK为API 14
广东药科大学 数字媒体技术系 GDPUDM
点击Next按钮进入下一步,这时候会要求 你为应用添加一个Activity
广东药科大学 数字媒体技术系 GDPUDM
广东药科大学 数字媒体技术系 GDPUDM
Layout --- activity_main.xml
广东药科大学 数字媒体技术系 GDPUDM
1.3.5 资源-详解res目录
广东药科大学 数字媒体技术系 GDPUDM
res/values/string.xml
• 定义应用程序字符串
AndroidManifest.xml 引用了app_name
Android学习新手笔记(非教程)

第一行代码Android知识点总结

第一行代码知识点总结1、Android四层架构:Linux内核层(提供底层驱动)、系统运行库层(提供特性支持,一些核心库)、应用框架层(提供各种API)和应用层2、Android四大组件:活动(activity)、服务(Service)、广播接收器(Broadcast Receiver)和内容提供器(Content Provider)3、Android应用特色开发:四大组件、丰富的系统控件、SQL数据库(轻量级,运算速度快的嵌入式关系型数据库)、强大的多媒体和地理位置定位(LBS)。
4、Android程序设计讲究逻辑和视图分离,通常在布局文件中编写在界面4.1Android的日志工具Log:Log.d()打印调试信息对应debug。
Log.v()打印琐碎、意义最小日志,对应verbose,Log.i()打印比较重要的数据对应info;Log.w()打印警告信息对应error;Log.e()打印错误信息对应error。
Log.d(类名,打印内容)4.2活动:主要用于和用户进行交互、基本用法4.3活动中的提醒方式Toast4.4、drawable存放图片,mipmap存放应用图标,values放字符串、样式,颜色等配置,layout放布局文件4.5、Android Studio是采用Gradle来构建项目5、Intent的使用:显式Intent和隐式Intent()6、活动的生命周期7、返回栈的定义8、Android是使用任务来管理活动的9、活动状态:运行、暂停、停止、销毁状态10、Activity类中的七个回调方法:onCreate()onStaart()、onResume()、onPause()、onStop()、onDestroy()和onRestart()11、活动的三种生存期:完整、可见、前台12、活动的四种启动模式:standard、singleTop、singleTask 和singleInstance13、常用控件:TextView、Button、EditText、ImageView、ProgressBar(进度条)、AlertDialog(对话框)、ProgressDialog (显示对话框时出现进度条)14、基本布局:线性布局(LinearLayout)、相对布局(RelativeLayout)、帧布局(FrameLayout)百分比布局、AbsoluteLayout、TableLayout15、常用和最难用的控件ListView16、滚动控件:RecyclerView17、碎片的定义、使用方式、碎片的生命周期、状态和回调18、广播主要的两种类型:标准广播和有序广播;注册广播的方式:静态注册和动态注册;广播接收器继承BroadcastReceiver19、本地广播(LocalBroadcastManager)20、Android系统中三种数据持久化方式:文件储存、SharedPreference储存及数据库储存,还有保存在手机SD卡中21、SQliteOpenHelper帮助类:SQliteOpenHelper中有两个抽象方法onCreate()和onUpgrade();两种重要的实例方法getReadableDatabase()和getWritableDatabase()22、LitePal操作数据库23、跨程序共享数据:内容提供器24、ContentResolver的基本用法:ContentResolver类、ContentResolver中提供给了一系列的方法用于对数据进行CRUD操作包括增删改查操作;ContentResolver增删改查方法不接收表名参数,而是用Uri参数代替。
Android第一行代码第9章

第9 章后台默默的劳动者,探究服务1.在三大智能手机操作系统中,__________ 是_ 不支持后台的,当应用程序不在前台运行时就会进入到挂起状态。
___________ 则_完全支持后台功能,这使得应用程序即使在关闭的情况下仍然可以在后台继续运行。
而 ___________ 则_ 是经历了一个由不支持到支持后台的过程,目前也具备了后台功能。
答:iOSAndroidWindows Phone2.默认情况下,Android 所有应用中的组件不但运行在同一进程中,而且也运行在此进程的同一线程中,这一线程被称为 __ 。
_答:主线程3.Android 主线程负责分发事件给相应的用户界面组件,包括绘制用户界面的事件,在主线程中应用与Android UI 交互,因此,主线程又被称为___________ 线_ 程。
答:UI (主线程)4.在Android 应用中,只有____________ 线_程能够维护和更新UI 组件的状态,因此,用户界面是一种单线程模型。
答:UI5.当Android 应用需要执行一些耗时操作时,如果不将这类操作放在子线程里去运行,就会导致被_阻塞,从而影响用户对软件的正常使用。
答:主线程6.Android 的UI 组件不是线程安全的, 在子线程中更新UI 会导致_______ 。
_答:程序崩溃7.Android 多线程编程基本模式与Java 多线程编程相同,主要有两种基本模式:即定义一个继承自的_线程类和定义一个实现_____________________ 接_ 口的类。
答:ThreadRunnable8.Android 系统异步消息通信机制由以下类组成:___________ 、____________ 、_MessageQueue 和Looper 。
答:MessageHandler9.在Android 系统异步消息通信机制中,____________ 是_在线程之间传递的消息,它可以在内部携带少量的信息,用于在不同线程之间交换数据。
第一行代码笔记

Android系统四大组件分别是活动(Activity)、服务(Service)、广播接收器(Broadcast Receiver)和内容提供器(Content Provider)。
所有的活动都必须要继承Activity才能拥有活动的特性onCreate()方法是一个活动被创建时必定要执行的方法drawable开头的文件夹都是用来放图片的,所有以values开头的文件夹都是用来放字符串的,layout文件夹是用来放布局文件的,menu文件夹是用来放菜单文件的1.在代码中通过R.string.hello_world可以获得该字符串的引用;2.在XML中通过@string/hello_world可以获得该字符串的引用setContentView()方法来给当前的活动加载一个布局<manifest xmlns:android="/apk/res/android"package="com.example.activitytest"android:versionCode="1"android:versionName="1.0"><uses-sdkandroid:minSdkVersion="14"android:targetSdkVersion="19" /><applicationandroid:allowBackup="true"android:icon="@drawable/ic_launcher"android:label="@string/app_name"android:theme="@style/AppTheme"><activityandroid:name=".FirstActivity"/*使用android:name来指定具体注册哪一个活动com.example.activitytest.FirstActivity的缩写*/android:label="This is FirstActivity"><intent-filter><action android:name="android.intent.action.MAIN" /><category android:name="UNCHER" /></intent-filter></activity></application></manifest><manifest>通过package属性指定了程序的包名是com.example.activitytest使用了android:label指定活动中标题栏的内容label不仅会成为标题栏中的内容,还会成为启动器(Launcher)中应用程序显示的名称protected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);requestWindowFeature(Window.FEATURE_NO_TITLE);setContentView(yout.first_layout);Button button1 = (Button) findViewById(R.id.button_1);button1.setOnClickListener(new OnClickListener() {@Overridepublic void onClick(View v) {Toast.makeText(FirstActivity.this, "You clicked Button 1",Toast.LENGTH_SHORT).show();}});}requestWindowFeature(Window.FEATURE_NO_TITLE)的意思是不在活动中显示标题栏通过findViewById()方法获取到在布局文件中定义的元素findViewById()方法返回的是一个View对象,向下转型将它转成Button对象通过调用setOnClickListener()方法为按钮注册一个监听器,点击按钮时就会执行监听器中的onClick()方法Toast通过静态方法makeText()创建出一个Toast对象,然后调用show()将Toast显示出来就可以了makeText()方法需要传入三个参数。
android移动应用开发技术课第一章笔记

android移动应用开发技术课第一章笔记第一章:Android移动应用开发技术课笔记一、引言在当今移动互联网时代,Android系统以其开放性和普及率成为了最受欢迎的移动操作系统之一。
随着移动应用市场的不断扩大,对Android移动应用开发技术的需求也日益增加。
学习和掌握Android移动应用开发技术成为了越来越多人的选择。
二、Android移动应用开发技术概述1. 什么是Android?Android是一款基于Linux操作系统的开源移动设备操作系统,主要用于触摸屏移动设备,如智能手机和平板电脑。
Android操作系统的开放性使得开发者可以自由定制和开发应用,受到了广大用户的喜爱。
2. Android移动应用开发技术的重要性随着信息化和数字化的发展,移动应用成为了人们获取信息和进行交流的重要方式。
而Android作为最主流的移动操作系统之一,其应用的开发和推广具有巨大的市场潜力和商业价值。
掌握Android移动应用开发技术成为了许多开发者和从业者的追求目标。
三、学习Android移动应用开发技术的重要性1. 对于个人的意义学习Android移动应用开发技术可以提升个人的职业技能,并且在移动应用开发领域有更多的发展机会。
可以通过开发自己的应用来实现个人价值和创造财富。
2. 对于企业的意义随着移动互联网的发展,各类企业都希望拥有自己的移动应用,以提升品牌形象和服务用户。
懂得Android移动应用开发技术的人才对企业来说显得格外宝贵。
四、学习Android移动应用开发技术的途径1. 自学通过阅读相关书籍、网上教程和参加线上培训班,可以自学Android 移动应用开发技术。
这种方式需要具备较好的自学能力和毅力。
2. 参加培训班选择权威的培训机构进行系统的学习和培训,可以更快速、系统地学习Android移动应用开发技术。
五、Android移动应用开发技术的未来发展随着人工智能、物联网、区块链等技术的不断发展,Android移动应用开发技术也将不断拓展应用场景和技术深度。
Android初学者学习笔记(自己整理)

Android 笔记使用Android 和Eclipse ADT 创建并运行应用程序在 Android 简介的开始部分,我将帮助您尽可能快地创建一个简单的 Android 应用程序。
您将使用 Android 4.2 和 Eclipse Android Development Tools (ADT) 插件来创建一个基于 Java 的 Hello World 应用程序。
为 Android 建立开发环境的途径有两种。
刚接触 Eclipse 和 Android 的开发人员可以先下载ADT (Android Developer Tools) Bundle。
ADT Bundle 捆绑了一个 Android SDK 和一个 Eclipse 版本,其中已经安装了 ADT 插件。
这个程序包可帮助您快速、轻松地使用 Android。
如果 Eclipse 已经安装在台式机上并设置好,那么请手动下载并安装Android SDK。
基础 Android SDK 包含一些可简化 Android 开发的系统工具,但它缺乏开发特定 Android 版本所需的 Android 库。
为您的操作系统下载基础 Android SDK 后,可以访问 SDK 安装目录的工具目录,并运行清单 1中的 Android 脚本。
清单 1. 启动Android SDK Manager~/Development/tools/android/android-sdk-mac_x86/tools$>./android该脚本启动了 Android SDK Manager,您可以下载 Android 的各种版本和库,并创建模拟程序或虚拟设备实例。
Android SDK Manager 打开了一个窗口,其中显示一个很长的要下载的选项的列表,如图 1所示。
图 1. SDK Manager在左侧复选框中,选择Tools,然后选择Android 4.2 (API 17)。
Android笔记一

1、Android中最重要的组件:a、Activity 整个应用程序的界面,负责应用程序当中数据的格式b、Intent 应用程序中所有的数据通过此来传递c、Service 承担大部分数据处理的工作,不可见d、Content Provider 负责存数数据,并允许有需要的应用程序访问这些数据2、开发工具以及安装:a)Android :SDK2.2 相当于java中的SDKi.下载后点击SDK Manager.exe安装API包b)Eclipse以及插件ADT(在找到安装插件的网址)c)Android模拟器的配置3、创建一个Android应用程序的步骤4、Android应用程序目录结构a)Gen目录:eclipse自动生成R.java类文件(不能修改)b)Assets目录:可以放置任何文件c)Res文件目录:里面放置的文件会在gen目录R.java中自动生成一个idi.Drawable-*dpi:高中低分辨率,所以每张图片要准备三个版本yout文件夹:放置布局文件,每一个activity对应一个布局配置文件,也会在R.java中自动生成一个唯一的idiii.iv.Values文件夹:放置值(都为键值对),也会在R.java中自动生成一个唯一的id5、AndroidManifest.xml文件的作用a)整个应用程序的配置文件b)该文件中filter标签在哪个Activity当中,就优先显示哪个ActivityActivity知识点1、Activity的主要作用a)是Android中非常重要的与用户进行交互的接口b)创建Activity的要点:i.一个Activity就是一个类,创建时且要继承Activityii.重写onCreate方法(当一个Activity第一次运行时,Android系统就会自动调用这个方法)iii.每一个Activity都必须在AndroidManifest.xml中进行注册配置iv.为Activity添加必要的控件(layout中xxx.xml文件,通常一个Activity对应一个xml文件)v.setContentView(yout.xxx); 将控件显示到这个Activity中c) 多个Activity之间的关系:一个或者多个应用程序之间d) Intent的基本作用(可以理解为请求)1、一个Intent对象包含了一组信息:(Component name (指定启动哪一个组件)、Action(指定另外一个Activity要做什么)、Data(传送的数据)、Catefory、Extras(额外信息:键值对传递)、Flags)e) 在Activity当中启动另外一个Activity的方法0、intent,setClass ( Actinity_01.this., Activity_02.class);1、startActivity(Intent intent);f) 使用Intent进行Activity之间数据的传唤0、intent..putXxxx();1、取时,Intent intent = getIntent(); 获得Intent对象2、Activity的生命周期1、资料:查看帮助文档中关于Activity生命周期的用法及介绍2、初始新建Activity时onCreat() 创建--> oncStart() 启动----> onResume()正在运行此时新加入一个Activity活动时(完全遮挡住第一个Activity),onPause() 暂停第一个Activity ------> (onCreat() 创建--> oncStart() 启动----> onResume() 正在运行) -----> onStop() 第一个停止(第一个Activity处于不可见的状态)点击回复按钮时,onPause() 暂停第二个Activity ----> onRestart() 重新启动第一个Activity _-----> onStart() 启动第一个---> onResume() 正在运行第一个---> onStop() 第二个停止----> onDestroy() 毁掉第二个创建的Activity3、Task基本概念a)采用栈的后进先出的原则b)可以把不同程序之间的Activity组合在一起为单元c)若当Activity中调用了finish(),调用完成后,则会销毁此Activityd)只能弹出和压入Activity,不能排序4、Activity和Task之间的关系5、对话框风格Activity的使用方法a)配置文件中:配置指定风格i.android:theme="@android:style/Theme.Dialog"则以窗口样式显示出来b) 启动对话框时Activity,第一个Activity还是处于可见的状态,调用第一个Activity的onPause()方法,暂时失去焦点。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
第一行代码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即可。