Android第一行代码 第10章
- 格式:docx
- 大小:22.04 KB
- 文档页数:8
Android常用代码大全Notepad++编写可以负责粘贴到其中去看得更清楚。
(内容包括了Android中的大部分常用控件及其事件的监听)第一章1.1 Android中src文件夹包含项目的所有包及其资源文件,res文件夹包含了项目中所有的资源。
比如:程序图标(drawable),布局文件(layout),常量(value),音频文件(raw)R.java是在创建项目是自动生成的只读文件,不可更改此文件。
R文件其作用:是定义项目中所有资源的索引文件。
1.2 AndroidManfest.xml 如下:<?xml version="1.0" encoding="utf-8"?><manifest //根节点,描述了packege包中所有的内容xmlns:android="/apk/res/android" //包命名空间的声明,使得Android中各种标准属性能在文件中使用,提供了大部分元素中的数据package="Android.Summary" //引用程序包名android:versionCode="1"android:versionName="1.0"><uses-sdk android:minSdkVersion="7" /> //使用SDK版本号<application //包含package中application级别组件声明的根节点,可包含application的一些全局和默认的属性,如标签label,icon,主题,必要的全限。
注意:一个manifest中只能包含一个或0个application android:icon="@drawable/icon" //应用程序图标android:label="@string/app_name"> //应用程序名字<activity android:name=".SummaryActivity" //Activity用来与用户交互的主要工具,是用户打开程序的初始界面.此处为引用程序默认启动的Activityandroid:label="@string/app_name"><intent-filter>/ //描述了Activity的启动时间和位置,另外为了支持查找Activity可以包含一个或多个<intent-filter><actionandroid:name="android.intent.action.MAIN" /> //acton 为组件支持的Intent action<categoryandroid:name="UNCHER" />//categor 为组件支持的Intent category 这里指定了引用程序的默认启动的Activity</intent-filter></activity><activity android:name = "Activity02"></activity> //在此对新增的Activity进行注册。
第一行代码知识点总结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系统应⽤开发(Android程序设计基础版)第1-23章概要《Android系统应⽤开发》作业习题暨总复习题(Android程序设计基础版)2013-2014-2学期主讲教师:贾震斌⽬录第1章认识⼀下ANDROID (1)第2章搭建ANDROID应⽤开发环境 (2)第3章ACTIVITY组件 (4)第4章界⾯布局 (7)第5章资源管理 (12)第6章INTENT组件 (17)第7章SERVICE (30)第8章BROADCASTRECEIVER (43)第9章CONTENT PROVIDER (48)第10章FRAGMENT (53)第11章基本UI组件 (58)第12章⾼级UI组件 (72)第13章MENU (83)第14章ACTIONBAR (91)第15章通知 (95)第16章DIALOG (100)第17章ALARM (105)第18章触摸处理 (109)第19章深⼊VIEW (113)第20章线程与进程 (118)第21章PREFERENCES (123)第22章⽂件操作 (129)第23章数据库 (133)结束 (135)第1章认识⼀下Android1. Android系统内核基于什么操作系统?答:Android是⼀个完整的移动操作系统,利⽤Linux作为系统内核,实现了存储管理、设备管理、⽂件管理、进程管理、安全管理等操作系统的基本功能。
2. Google发布的基于Linux平台的开放源代码移动操作系统平台名称是什么?答:Android。
3. Android运⾏的虚拟机名称是什么?虚拟机内运⾏的字节码⽂件后缀名是什么?答:Android运⾏的虚拟机不是Java虚拟机,⽽是经过改造的Dalvik虚拟机,在虚拟机内运⾏的并不是Java编译后的字节码,⽽是后缀名为dex内部格式⽂件。
4. Android采⽤什么软件架构?整个系统包括哪⼏个层次?答:Android采⽤堆栈式软件架构,整个系统从底层操作系统到顶层核⼼应⽤在内分为5个层次:Linux内核、Android运⾏环境(Android Runtime)、库集合(Libraries)、应⽤框架(Application Framework)、应⽤(Application)。
安卓记事本程序源代码(Android Notepad program sourcecode)1、MainActivity01.package cn.dccssq;02。
03.import android.app.listactivity;04.import android.content.intent;05.import android.database.cursor;06.import android.os.bundle;07.import android.util.log;08.import android.view.menu;09.import android.view.menuitem;10.import android.view.view;11.import android.widget.listadapter;12.import android.widget.listview;13.import android.widget.simplecursoradapter;14。
15.public类主流延伸和ListActivity很{16。
17。
私有静态最后insert_id = menu.first;18。
19。
私有静态最后delete_id = menu.first + 1;20。
21。
私有静态最后activity_create = 0;22。
23。
私有静态最后activity_edit = 1;24。
25。
私人diarydbadapter diarydb;26。
27。
私人光标光标;28。
/ * *的时候调用首次创建。
* /29。
@Override30。
public void onCreate(Bundle savedinstancestate){31。
超级onCreate(savedinstancestate);32。
setContentView(yout。
主);33。
34。
diarydb =新diarydbadapter(本);35。
《第一行代码》笔记1第一章:Android简介1.1Android系统架构1.1.1Linux内核层1.1.2系统运行层1.1.3应用框架层1.1.4应用层1.1.5架构图1.2Android已发布的版本1.2.12.3.3-2.3.7还占有15左右1.2.24.0以上占有80%1.2.3目前最新版是5.0 棒棒糖1.3Android应用特色1.3.1四大组件活动(Activity)服务(Service)广播接收器(Broadcast Receiver)内容提供器(Content Provider) 1.3.2丰富的系统控件1.3.3SQLite数据库1.3.4地理位置定位1.3.5强大的多媒体1.3.6传感器1.4Android开发环境1.4.1Android SDK1.4.2Eclipse1.4.3ADT1.5Android程序结构1.5.1src放java代码1.5.2gen代码自动生成,主要放R.java文件1.5.3assets可以放一些程序打包的文件,WebView加载的网页1.5.4bin编译时自动产生的文件1.5.5libs放些第三方jar包1.5.6res放些图片、布局、字符串等资源的文件drawable-hdpi,drawable-ldpi,drawable-mdpi文件夹layout文件夹menu文件夹value文件夹1.5.7AndroidManifest.xml整个Android项目的配置文件,四大组件都需要在这里注册1.5.8project.properties指定编译时SDK的版本1.6Logcat工具1.6.1Log.v()对应verbose级别,最低级1.6.2Log.d()对应debug级别,比verbose高一级1.6.3Log.i()对应info级别,比debug高一级1.6.4log.w()对应warn级别,比info高一级1.6.5log.e()对应error级别,比warn高一级2第二章:活动(Activity)2.1什么是活动(Activity)2.1.1是一种包含用户界面的组件,用于与用户交互,一个应用程序中包含零个或多个活动2.2活动(Activity)用法2.2.1自定义类继承Activity父类,并且要在AndroidManifest.xml文件中注册2.3intent2.3.1是Android各个组件之间进行交互的另一中重要方式,可以指明动作,并可以互相传递数据2.4intent用法2.4.1显式用法和隐式用法2.5活动(Activity)生命周期2.5.1返回栈,Android使用Task来管理活动,一个Task是一组存放在栈里活动的集合2.5.2活动状态运行状态暂停状态停止状态销毁状态2.5.3活动生存期onCreate() onStart() onResume() onPause() onStop() onDestroy() onRestart()图解流程2.6活动(Activity)启动模式2.6.1standard默认的启动模式,每次创建活动都会先建新的实例2.6.2singleTop启动活动时,发现返回栈的栈顶是该活动,则可以认为直接使用它,不会创建新的实例Subtopic2.6.3singleTask每次创建活动时,先判断是否已经存在活动实例,如果没有,则创建,如果有,则会把这个活动之上的所有活动统统出栈2.6.4singleInstance单独的返回栈来管理这个活动,可以解决共享活动实例问题2.7活动集合2.7.1BaseActivity,放一个活动集合实例,统一管理活动添加和销毁3第三章:UI控件3.1常见控件3.1.1TextView3.1.2Button3.1.3EditText3.1.4ImageView3.1.5ProgressBar 3.1.6AlertDialog 3.1.7ProgressDialog 3.2基本布局3.2.1LinearLayout 3.2.2RelativeLayout 3.2.3FrameLayout 3.2.4TableLayout 3.3自定义控件3.3.13.4ListView3.4.1数据列表控件3.4.2内部类ViewHolder,用于对控件实例缓存,convertView 判断,setTag()方法调用3.5单位和尺寸3.5.1px,像素-屏幕中最小元素单元3.5.2dp、sp来帮忙3.69-Patch工具4第四章:碎片(Fragment)4.1什么是碎片4.1.1是可以嵌入到活动中的UI片段,适用于平板比较多4.2碎片的生命周期4.2.1运行状态4.2.2暂停状态4.2.3停止状态4.2.4销毁状态4.3碎片生存期4.3.1onAttach()4.3.2onCreateView()4.3.3onActivityCreated()4.3.4onDestroyView()4.3.5onDetach()4.3.6图解流程4.4动态布局技巧4.4.1使用限定符4.4.2Subtopic5第五章:广播机制(Broadcast Receiver) 5.1有序广播5.1.1Subtopic5.2无序广播5.2.1Subtopic5.3接收系统广播5.3.1动态注册监听启动程序才能注册注意要取消注册5.3.2静态注册监听程序未启动,就能注册系统级别,不需要手动取消注册5.4发送自定义广播5.5使用本地广播6第六章:数据持久化6.1将内存中的瞬时数据保存到存储设备中6.2文件存储6.3SharedPreferences存储6.3.1Context的getSharedPreference()6.3.2Activity的getPreference()6.3.3PreferenceManager的getDefaultSharedPreference() 6.4SQLite数据库6.4.1创建数据库,SQLiteOpenHelper6.4.2升级数据库,onUpgrade()6.4.3添加数据6.4.4更新数据6.4.5删除数据6.4.6查询数据6.4.7SQL操作数据库7第七章:内容提供器(Content Provider)7.1主要是用于不同应用程序之间实现程序共享,并提供了完整的机制7.2ContentResolver用法7.3URI介绍7.4创建自己的内容提供器7.4.1onCreate()7.4.2query()7.4.3insert()7.4.4update()7.4.5delete()7.4.6getType()8第八章:多媒体应用8.1使用通知(Notification)8.2接受和发送短信8.3调用摄像头和相册8.4播放多媒体文件9第九章:服务(Service)9.1Android后台运行的解决方案,不依赖于用户界面9.2Android多线程编程9.2.1new Thread(线程类).start()9.2.2在子线程中更新UI9.2.3异步消息机制MessageHandlerMessageQueueLooperSubtopic9.2.4使用AsyncTask onPreExecute() doInBackground(Params...) onProgressUpdate(Progress...) onPostExecute(Result)9.3服务基本用法9.3.1定义一个服务9.3.2启动和停止服务9.3.3活动和服务通信9.3.4服务生命周期onCreate() onStartCommand() onDestroy9.3.5服务更多技巧前台服务IntentServiceAlarm机制10第十章:网络技术10.1WebView用法10.2Http协议访问网络10.2.1HttpURLConnection类10.2.2HttpClient类10.3解析XML格式数据10.3.1Pull解析10.3.2SAX解析10.4解析JSON格式数据10.4.1JSONObject10.4.2GSON11第十一章:位置服务(LBS) 11.1基于位置服务11.2LocationManager11.3Google API11.4百度地图11.5高德地图12第十二章:传感器12.1探测外界信号,转化我们需要的信息12.2光照传感器12.3加速度传感器12.4方向传感器13第十三章:Android高阶技巧13.1全局获取Context的技巧,利用Application类来初始化13.2使用Intent传递对象13.2.1Serializable方式13.2.2Parcelable方式13.3定制自己的日志工具13.3.1全局封装类13.4调试Android程序13.5编写测试用例14第十四章:实战14.1酷欧天气15第十五章:将应用发布到Google Play。
《Android移动应用基础教程》习题答案第1章Android基础入门一、填空题1、Linux、操作系统2、应用程序层、应用程序框架层、核心类库、Linux核3、adb start-server4、java代码文件5、打包成.apk文件二、判断题1、×2、×3、√4、×5、√三、选择题1、D2、ABC3、B4、C5、A四、简答题1、Android体系结构总共包含四层,分别是:●应用程序层:设备上安装的软件应用都属于这一层●应用程序框架层:包含应用API●核心类库:包含系统库和运行环境,系统库包含了底层C代码;运行环境包含了Java的核心库和Dalvik虚拟机●Linux核:提供Android的底层驱动。
2、SDK包含了Android的API源代码、各种工具、示例工程、用到的各种资源模板等。
第2章Android UI开发一、填空题1、RelativeLayout、LinearLayout、TableLayout、GirdLayout、FrameLayout、AbsoluteLayout2、android:layout_alignParentLeft3、水平、竖直4、RelativeLayout5、显示全部信息、显示调试信息、显示一般信息、显示警告信息、显示错误信息二、判断题1、√2、√3、×4、√5、×三、选择题1、D2、B3、C4、D5、B四、简答题1、使用Toast可以直接调用Tosast的静态方法:Toast.makeText(this, text, duration).show();也可以创建出Toast对象,如:Toast toast = new Toast(this);toast.setText("提示信息");toast.show();2、一共有六种布局,它们的作用分别是:●RelativeLayout:相对于其他控件或者容器决定控件的位置;●LinearLayout:使控件以竖直或者水平方向排列;●TableLayout:使控件以表格形式排列;●GirdLayout:能使控件交错显示,能够避免因布局嵌套对设备性能的影响,更利于自由布局的开发;●FrameLayout:使控件按照创建顺序在屏幕的左上角重叠显示;●AbsoluteLayout:通过绝对的坐标控制控件摆放的位置。
第10章看看精彩的世界,使用网络技术1. Android提供了一个_______________________控件,借助它可以在应用程序里嵌入一个浏览器,从而展示网页。
答:WebView2. 请根据下面程序中注释,在空白划线处填写代码。
// 从布局中取得WebView组件R.id.web_viewwebView =(1)________________________________;// 取得webView对象的设置集,设置为允许运行网页中JavaScript程序(2)________________________________;// 为webView设置一个新建的客户端(3)________________________________ {@Override// 实现WebViewClient的shouldOverrideUrlLoading(),为WebView对象接收urlpublic boolean (4)_______________________________________{// 根据传入的url再去加载网页view.loadUrl(url);// 返回true,表示当前WebView可以处理打开新网页的请求,不用借助系统浏览器return true;}});// 调用webView对象的loadUrl()方法,加载url为“”的网页(5)_______________________________________;答:(1)(WebView) findViewById(R.id.web_view)(2)webView.getSettings().setJavaScriptEnabled(true)(3)webView.setWebViewClient(new WebViewClient()(4)shouldOverrideUrlLoading(WebView view, String url)(5)webView.loadUrl("")3. 使用_______________________协议访问网络可以让开发人员完全控制发送HTTP请求、接收服务响应、解析返回数据,以及最终显示内容整个过程。
答:HTTP4. Android平台开发HTTP网络连接主要有两个途径,即使用由Android SDK自主开发的HTTP网络连接开发包提供的_______________________类,或使用Apache旗下的开源项目_______________________。
答:HttpURLConnectionHttpClient5. HTTP网络连接设置HTTP请求方式,主要有两个:_______________________和_______________________。
答:GETPOST6. 下面是一段HTTP网线连接程序片断,请认真阅读后说明其编程逻辑。
private Handler handler = new Handler() {public void handleMessage(Message msg) {switch (msg.what) {case SHOW_RESPONSE:String response = (String) msg.obj;// 将收到的网页字符串response显示在TextView中responseText.setText(response);}}};……private void sendRequestWithHttpClient() {new Thread(new Runnable() {@Overridepublic void run() {try {HttpClient httpClient = new DefaultHttpClient();HttpGet httpGet = new HttpGet("");HttpResponse httpResponse = httpClient.execute(httpGet);if (httpResponse.getStatusLine().getStatusCode() == 200) {HttpEntity entity = httpResponse.getEntity();String response = EntityUtils.toString(entity, "utf-8");Message message = new Message();message.what = SHOW_RESPONSE;message.obj = response.toString();handler.sendMessage(message);}} catch (Exception e) {e.printStackTrace();}}}).start();}答:(1)首先,在UI主线程中创建Handler类对象handler,并实现其HandleMessage()方法,让该方法接收并处理Message消息对象,根据消息对象的what字段判断出消息来源后,再从消息对象中提取obj字段内容,并将内容显示到界面中。
(2)另外,程序中还建立一个进行网络连接的后台线程并启动它;(3)在后台线程里,建一个DefaultHttpClient类的对象httpClient作为HTTP客户端对象;(4)又建一个HTTP GET请求对象httpGet,设置请求网址为“”;(5)接着,调用httpClient对象的execute()方法执行HTTP GET请求,并将服务器返回的数据保存到HttpResponse类的httpResponse对象中;(6)调用httpResponse对象的getStatusLine()方法取得状态行,再链式调用getStatusCode()从状态行取得状态码,如果等于200,那么执行下面操作;(7)从httpResponse对象中取得响应实体并保存到HttpEntity类的entity对象中,调用EntityUtils类的静态方法toString()将响应实体转换成“utf-8”编码字符串,并保存到字符串变量response中;(8)建一个Message类对象message,将message的what字段值设置为表示消息来源的常量,再将response 对象转换成字符串并保存到message的obj字段,调用handler的sendMessage()方法将message对象发送给UI主线程。
7. 下面是使用HttpURLConnection连接网络程序片断,请根据注释提示在空白划线处填写相应代码。
new Thread(new Runnable() {@Overridepublic void run() {HttpURLConnection connection = null;try {// 新建一个连接到“”的URL类对象url(1)________________________________________;// 打开url对象的网络连接,并保存到connection(2)________________________________________;// 将connection连接请求方式设置为GET(3)________________________________________;connection.setConnectTimeout(8000);connection.setReadTimeout(8000);connection.setDoInput(true);connection.setDoOutput(true);// 取得connection连接的输入流InputStream对象,并保存到in中(4)________________________________________;BufferedReader reader =(5)_________________ (//封装成BufferedReader类对象reader(6)___________________);// 将in转换成InputStreamReader对象StringBuilder response = new StringBuilder();// 新建字符串组装器String line;// while循环,逐行读取输入流中数据,直到输入流为null(7)_______________________________{response.append(line);}Message message =(8)___________________;// 创建Message类的对象messagemessage.what = SHOW_RESPONSE;// 设置message对象的发送者签名message.obj = response.toString();// message对象携带的信息(9)_______________________________;// handler对象发送message} catch (Exception e) {e.printStackTrace();} finally {if (connection != null) {(10)______________________;// 断开connection网络连接对象}}}}).start();// 启动线程答:(1)URL url = new URL("http:// ")(2)connection = (HttpURLConnection) url.openConnection()(3)connection.setRequestMethod("GET")(4)InputStream in = connection.getInputStream()(5)new BufferedReader(6)new InputStreamReader(in)(7)while ((line = reader.readLine()) != null)(8)new Message()(9)handler.sendMessage(message)(10)connection.disconnect()8. 在进行网络数据通信时为了知道收到数据的含义,需要双方事先应约定所传递数据的__________,这可以通过规定__________、添加__________来实现。
这样,当对方收到数据后就可以按照事先约定数据解析,从而提取出需要的内容。