移动应用开发章节重点内容讲解
树图思维导图提供 移动应用开发 在线思维导图免费制作,点击“编辑”按钮,可对 移动应用开发 进行在线思维导图编辑,本思维导图属于思维导图模板主题,文件编号是:dddd2c8cfe43f26a6d39b9338bdbea2a
移动应用开发思维导图模板大纲
单选题
20道
20分
填空题
8道
8分
改错题
3题
6个错
18分
程序分析题
3题
12分
程序补全题
2题
6个空
24分
综合题
2题
第1题8分,第2题10分
智能手机的市场占有率
P1
Android
Android所属的公司
P2
谷歌
Android开发需要用到的Android虚拟机
P8
简称AVD
Android基本架构
P3
共有5层
案例
浏览器属于哪一层
应用程序层
Android四大组件
P5
不包括Intent
Android开发工具
P13
Genymotion模拟器
在AndroidManifest.xml中声明主页面
P31
<activity android:name=".MainActivity"> <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity>
action
action.MAIN
category
category.LAUNCH
案例二
<application> <activity android:name=".MainActivity2"> <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> <activity android:name=".MainActivity"> </activity> </application>
问题
程序启动后那个页面会先运行被用户看到?
屏幕中出现MainActivity2的页面作为程序的主入口页面
表示文字大小的单位
P28
sp:主要处理字体的大小
案例
android:textSize="25px"
是错误的
应该修改为
android:textSize="25sp"
表示组件ID的值
P29
@+type/name
+表示该资源是新增的,多用于组件id赋值
案例
android:id="@id/text"
是错误的
应该修改为
android:id="@+id/text"
Android清单文件作用
P31
该文件的后缀名为.xml
包含了应用程序模块运行所需要的权限
是自动创建的,不是手动创建的
dimens.xml
P27
为了定义布局常量而产生的资源文件是
dimens.xml
使用Intent显式启动
P51
案例
Intent intent = new Intent(MainActivity.this,SubActivity.this);
是错误的
应该修改为
Intent intent = new Intent(MainActivity.this,SubActivity.class);
使用Intent传递参数
P57
案例
intent.putExtra(bundle);
是错误的
应该修改为
intent.putExtras(bundle);
Intent过滤器中action的常用常量
P53
action中ACTION_View表示根据协议部分以最佳方式启动
Intent隐式启动匹配到多个页面
P52
Intent隐式启动匹配到多个过滤器,系统会弹出对话框,由用户进行选择
Intent两种启动方式
P51
Intent支持显式启动和隐式启动
显式启动优点
显式启动方式更为简单
单选按钮和单选按钮组
P79
案例
1.<RadioGroup android:layout_width = “match_parent” android:layout_height = “wrap_content”> <Radiobutton android:layout_width=”wrap_content android:layout_height = “wrap_content” android:text = “男” > <Radiobutton android:layout_width=”wrap_content android:layout_height = “wrap_content” android:text = “女” > < /RadioGroup>
RadioGroup中默认的排列方式为垂直排列
所以代码的执行结果
一个垂直排列的单选按钮组,男单选按钮在上面,女单选按钮在下面
下拉列表Spinner
P79
案例
<Spinner android:id=”@+id/academic“ android:layout_width=”match_parent” android:layout_height = “wrap_content” android:entries=”@array/academic”/>
标签
Spinner
长度
android:layout_width=”match_parent”
宽度
android:layout_height = “wrap_content”
id
android:id=”@+id/academic“
下拉框内容数组
android:entries=”@array/academic”
定义在string.xml中的字符串数组
<string-array name=”academic”> <item>博士</item> <item>硕士</item> <item>大学</item> <item>高中</item> </string-array>
数组名字
<string-array name=”academic”>
数组中的项
<item>博士</item> <item>硕士</item> <item>大学</item> <item>高中</item>
相对布局实现水平排列登录页面
P73
案例
<Button android:layout_width=”wrap_content” android:layout_height=”wrap_content” android:layout_alignParentRight=”true” ndroid:id=”@+id/button” android:text=”登录”/> <EditText android:layout_width=”150dp” android:layout_height=”wrap_content” android:layout_toLeftOf=”@+id/button” ndroid:id=”@+id/pass” android:hint=”密码”/> <EditText android:layout_width=”150dp” android:layout_height=”wrap_content” android:layout_toLeftOf=”@+id/pass” ndroid:id=”@+id/name” android:hint=”用户名”/>
登录按钮在最右边
位置
android:layout_alignParentRight=”true”
id
长度
宽度
标签
密码输入框在登录按钮的左边
位置
android:layout_toLeftOf=”@+id/button”
id
长度
宽度
提示
用户名输入框在密码输入框的左边
位置
android:layout_toLeftOf=”@+id/pass”
id
长度
宽度
提示
Toolbar添加搜索和分享图标
P121
案例
<item android:id="@+id/ab_search" android:orderInCategory="80" android:title="action_search" app:actionViewClass="android.support.v7.widget.SearchView" app:showAsAction="ifRoom"/> <item android:id="@+id/action_share" android:orderInCategory="90" android:title="action_share" app:actionProviderClass="android.support.v7.widget.ShareActionProvider" app:showAsAction="ifRoom"/>
程序运行结果
在屏幕上方的工具栏中出现搜索图标和分享图标
搜索图标在左边,分享图标在右边
如果空间不够,则分享图标会收起来放在省略号里面
工具栏菜单项中的ifRoom属性的含义
P121
有空间则显示,否则隐藏
静态使用Fragment
P108
把Fragment当作普通控件,直接写在Activity的布局文件当中
这称为
静态
使用Fragment
广播接收器
P159
广播接收器需要在AndroidManifest中进行注册
接收消息的唯一标识定义在action标签当中
插上耳机可以触发广播
广播不都是系统定义好的,也自定义广播
Service特性
P142
可以用于下载文件
不可以独立启动
具有自己独立的生命周期
不可以向用户展示界面
使用xUitils创建数据库
P188
案例
DaoConfig config = new DaoConfig(context); config.setDbName(“mydb”); config.setDbVersion(1); db = DbUtils.create(config); db.createTableIfNotExists(PeopleInfo.class); db.dropTable(PeopleInfo.class);
设置数据库的名字
config.setDbName(“mydb”);
根据配置创建数据库
db = DbUtils.create(config);
在数据库中创建数据表
db.createTableIfNotExists(PeopleInfo.class);
SQLite底层代码语言
P171
SQLite是采用C语言编写的开源嵌入式数据库引擎
xUtils框架的优势
P189
使用xUtils框架基本摆脱了SQL语句的要求
Android系统中数据的性质
P165
Android系统中数据基本都是私有的
ContentProvider内容提供者
P194
微信可以获取本地相册的资源是通过内容提供者实现的
在支付宝中可以获取手机通讯录联系人是通过内容提供者实现的
在Android系统中各个应用程序运行在不同的进程空间
在Android系统中各个应用程序之间的数据不可以直接访问
使用URL获取网络图片
P216
案例
protected Object doInBackground(Object[] params){ try{Drawable drawable = null; String url = “http://localhost:8080/WebDemo/imag1.jpg”; URL objURL = new URL(url); InputStream in = objURL.openStream(); drawable = Drawable.createFromStream(in,null); }catch(Exception e){} return drawable; }
获取网络图片输入流
InputStream in = objURL.openStream();
通过输入流获取图片
drawable = Drawable.createFromStream(in,null);
返回图片对象作为方法返回值
return drawable;
网络请求与线程的关系
P202
Android3.0以后网络请求必须放在子线程中进行
树图思维导图提供 数智技术在工程设备管理中的应用 在线思维导图免费制作,点击“编辑”按钮,可对 数智技术在工程设备管理中的应用 进行在线思维导图编辑,本思维导图属于思维导图模板主题,文件编号是:f9a2de84ad9a9ceebc96385d71be9ebe
树图思维导图提供 《数字教育平台开发项目策划》 在线思维导图免费制作,点击“编辑”按钮,可对 《数字教育平台开发项目策划》 进行在线思维导图编辑,本思维导图属于思维导图模板主题,文件编号是:d6437326e3e07ecf1e5e178ba84d0100