Android_01--Android入门+四大布局+点击事件+文件操作
来源:互联网 发布:linux中更改文件内容 编辑:程序博客网 时间:2024/06/10 08:37
01--Android架构
- 底层Linux核心的工作,安全管理、内存管理、进程管理、电源管理、硬件驱动
- Libraries:c代码库
OpenGL:图形快速显示,游戏开发 webkit:浏览器内核
- Android Runtime
Dalvik VM:虚拟机,android代码运行在此虚拟机 运行时调用Libraries C代码库
- Application Framework中间介,java代码,调用底层c代码
- Applications原生的应用程序:浏览器、桌面、联系人等
02--Android开发环境的搭建
- JDK的安装和Java环境变量设置
- 下载、解压ADT
- 创建及使用模拟器
03--adb命令行操作
为了能在任意目录使用adb命令,需要将SDK目录下的platformtools文件夹路径和tools文件夹路径配置到path环境变量中。
- adb:android debug briage,android调试桥
- 列出可以使用的android版本: android list targets
- 列出可以使用的模拟器: android list avd
- 启动模拟器:emulator –avd <模拟器名>
- 显示已连接的设备:adb devices,显示内容:设备名,状态(device、offline)
- 导入文件到手机:adb push <Windows源文件路径> <手机目标路径>。
- 从手机导出文件:adb pull <手机源文件路径> <Windows目录路径>
- 安装程序:adb install <apk文件路径>
- 卸载程序:adb uninstall <包名>
- 重启adb: adb kill-server,abd start-server
- adb shell:来到模拟器linux系统的终端里,列出模拟器的目录结构:与DDMS中File Explorer界面显示的目录结构一样
- ps:运行的进程
- kill -9 pid:杀死进程
004--Android工程目录结构
- src:源代码。如果最初选择创建Activity,会有一个Activity的子类
- gen:系统自动生成的文件。R.java 中记录了项目中各种资源ID BuildConfig.java 标记项目是否可以Debug
- Android Private Libraries 用来支持各个版本的类库
- assets:资源文件
- bin:编译后的二进制文件 包括class、资源文件、dex、apk、清单文件等
- libs:工程中使用的库
- res:系统资源,所有文件都会在R文件生成资源ID
drawable:图片 layout:界面布局 menu:菜单 values:字符串、样式等数据 anim:动画 raw:原生文件 drawable-hdpi:高分辨率的图片目录 drawable-ldpi:低分辨率的图片目录 drawable-mdpi:中分辨率的图片目录 drawable-xhdpi:大分辨率的图片目录 drawable-xxhdpi:超大分辨率的图片目录
- AndroidManifest.xml:清单文件
Android中的四大组件(Activity、ContentProvider、BroadcastReceiver、Service)都需要在文件中注册,程序所需的权限也需要在此文件中声明,例如:电话、短信、互联网、访问SD卡。manifest节点:pakeage:是应用安装的路径data/data的目录,手机上的应用程序的不能有一样的包名/目录。 manifest节点:versionCode:应用程序版本号versionName:应用程序版本名称
- proguard.cfg:用来混淆代码的配置文件,防止别人反编译
- project.properties:标记该项目使用SDK版本号,早期版本名为:default.properties
005-Android程序打包安装过程
Android程序——编译打包——apk——签名——通过adb发布到设备上
006--Android 入门案例
案例-电话拨号 :
- 搭建界面需要组件:TextView(请输入电话号码)、EditText(xxx号码)、Button(呼叫此号码)
- 当点击Button时获取EditText中文本
- 使用Intent向系统内置的电话拨号器发送意图拨打电话
- 注册拨打电话权限android.permission.CALL_PHONE
007--四大布局
- LinearLayout(线性布局)
android:orientation=“horizontal”表示水平方向android:orientation=“vertical”表示垂直方向android:gravity="right"的意思是在当前容器内的子元素右靠起的方式布局
- RelativeLayout(相对布局)
ParentLeft:true;父窗体左边ParentBottom:true;父窗体下边android:layout_centerHorizontal="true" 使组件能够水平居中android:layout_centerVertical="true" 使组件能够垂直居中layout_below:指定某个组件,位于此组件的下方。
- TableLayout(表格布局)
- FrameLayout(帧布局)
- AbsoluteLayout绝对布局
008--Android下的单位
- dp 不依赖设备像素,依据设备自动适应大小,推荐使用
- sp 同dip/dp相似,会根据用户的字体大小偏好来缩放,专门用于设置字体的大小
009--Android点击事件的四种写法
- 通过匿名内部类来实现
- 通过内部类来实现
- 由类文件去实现监听接口
- 在布局文件中注册事件
010--测试
- 常见测试分类
- Junit 测试框架
需要在清单文件里配置:
添加指令集(manifest节点下)targetPackage:是测试目标包指令集依赖jar包(application节点下
011-日志信息
- 输出日志
在控制台中输入adb logcat,然后按回车键即可看到LogCat信息,如果需要终止按Ctrl+C键即可将LogCat信息保存在文件中执行adb logcat >D:/a.txt,则将日志输出到D:/a.txt文件中。按Ctrl+C键终止日志的输出
- Logcat的日志等级
Log.v() Log.d() Log.i() Log.w() 以及 Log.e() 。根据首字母对应VERBOSE,DEBUG,INFO, WARN,ERROR
012--文件操作
- Environment.getExternalStorageDirectory()获取当前SDCard
- Environment.getExternalStorageState()方法获取SDCard当前状态
- Context.openFileOutput(String name, int mode)可以获取一个文件输出流
- Context.openFileInput(String name)可以获取一个文件输入流
- context.getFilesDir().getAbsolutePath();获取应用路径data/data/应用包名/file
- getCacheDir().getAbsolutePath();获取缓存目录 /data/data/应用包名/cache
- 保存文件:
context.getFilesDir()返回的路径为:/data/data/当前包名/files
Environment.getExternalStorageDirectory()返回的路径为:/sdcard 其实/sdcard只是一个引用地址,真正的地址为/mnt/sdcard
对SDCard进行写入文件操作,需要在清单文件中添加权限:
<uses-permission
android:name="android.permission.WRITE_EXTERNAL_STORAGE" />- XML解析&序列化
XML解析步骤:
- 获取XmlPullParser: XmlPullParser parser = Xml.newPullParser();
- 设置XmlPullParser 的参数: parser.setInput(in, "utf-8");
- 获取解析的文档的事件类型: int type = parser.getEventType();
- 具体判断一下解析的是哪个标签
使用XmlSerializer 序列化器 生成xml的步骤
- 获取XmlSerializer实例 :XmlSerializer serializer = Xml.newSerializer();
- 设置xmlserializer序列化参数
- 开始写xml 的文档开头
- 写 xml 根节点
- 循环写其他节点
- SharedPreferences
Android平台给我们提供了一个SharedPreferences类,它是一个轻量级的存储类,特别适合用于保存软件配置参数。使用SharedPreferences保存数据,其背后是用xml文件存放数据,文件存放在/data/data/<package name>/shared_prefs目录下
保存:private SharedPreferences sp;sp = getSharedPreferences("itcast", Context.MODE_PRIVATE);Editor editor = sharedPreferences.edit();//获取编辑器editor.putString("name", "名称");editor.putInt("age", 4);editor.commit();//提交修改
getSharedPreferences(name,mode)方法:第一个参数:用于指定该文件的名称,名称不用带后缀,后缀会由Android自动加上。第二个参数:指定文件的操作模式,共有四种操作模式,这四种模式前面介绍使用文件方式保存数据时已经讲解过。如果希望SharedPreferences背后使用的xml文件能被其他应用读和写,可以指定Context.MODE_WORLD_READABLE和Context.MODE_WORLD_WRITEABLE权限。
访问:SharedPreferences sharedPreferences = getSharedPreferences("itcast", Context.MODE_PRIVATE);String name = sharedPreferences.getString("name", "");int age = sharedPreferences.getInt("age", 1);getString()方法:第二个参数为缺省值,如果preference中不存在该key,将返回缺省值
0 0
- Android_01--Android入门+四大布局+点击事件+文件操作
- android入门之Button四种点击事件及四大布局Layout
- Android不规则布局并触发点击事件
- Android_01
- android_01
- Android_01
- android_01
- Android四大组件及入门操作总结
- android源码解析(1)--如何处理布局文件中添加的点击事件
- Android四大组件-File文件操作
- android 入门xml布局文件
- android 入门xml布局文件
- android 入门xml布局文件
- android 入门xml布局文件
- android 入门xml布局文件
- android xml布局文件入门
- 浅析android 四大布局
- Android 四大布局
- 学习git的相关疑问及笔记
- Java 网络编程
- stack和queue
- python基础学习笔记
- android 开发集合
- Android_01--Android入门+四大布局+点击事件+文件操作
- 黑马程序员——Java IO
- PullToRefresh使用详解(一)--构建下拉刷新的listView
- Ruby基础知识梳理
- 《Scuba: Diving into Data at Facebook》阅读笔记
- PullToRefresh使用详解(二)---重写BaseAdapter实现复杂XML下拉刷新
- js中的字面量与构造函数创建对象
- 【UML视频总结】——UML概述
- Android_02--SQLite数据库+ListView控件+Android网络编程+多线程断点下载