Android 实训笔记

简介

通过本周的实训项目-调用百度地图API,实现固定地点显示,另外有注册和登录的UI。接触到的一些常用控件
包括 EditText, TextView, RadioGroup, RadioButton, CheckBox, Button 等,常见的布局 LinearLayout,简单的事件处理机制。

关于可读性

觉得比较好的做法,使用init()函数封装了初始化过程(各种findViewById),使用addAction()函数封装了添加监听器的过程(setOnClickListener),使得OnCreate()函数中的逻辑更简洁清晰。

注册Button事件的基本思路

  1. 在layout的xml文件中给所需的控件@+id
  2. 在Activity类中定义 private 变量,每个都对应一个控件
  3. 在init()中,用getViewById() 初始化所有控件
  4. addAction()函数中,为控件添加 事件监听器 例如OnClickListener()

事件处理的基本流程

这里以一个注册按钮为例说明

按钮事件处理基本流程

  1. 获取控件信息

    1
    2
    EditText account;
    account.getText().toString().trim();
  2. 数据格式与有效性验证
    主要是正则表达式校验与一些字符串比较的操作
    例如

    • 2.1 帐号是否为空
    • 2.2 账号是否重复
    • 2.3 密码是否为空
    • 2.4 密码是否一致
    • 2.5 生日不能超过当天
  1. 存储数据
    当然严格的说此处应该使用数据库,如果使用数据库的话,感觉也可以引入Web开发中ORM的一些思想。
    在本项目中由于时间限制,则是用SharedPreferences简化了过程。

存储文件的位置在 /data/data/包名/shared pref/baiduMap.xml

1
2
3
4
5
sp = getSharedPreferences("baiduMap", Context.MODE_PRIVATE);
editor = sp.edit();
sp.getString("account", "");
editor.putString("remAccountStatus", remAccountStatus);
editor.commit();

4.提交存储信息,并提示

1
2
editor.commit();
Toast.makeText(RegisterActivity.this, "注册成功!",Toast.LENGTH_LONG).show();

其他感悟

IDE

关于 IDE ,这次使用的是 Eclipse + Android SDK ,有机会的话应该熟悉一下 Android Studio。

说说Eclipse Android开发的一些自认为值得注意的点,

  1. 充分利用DDMS调试视角
  2. Console 输出有三种 Android/DDMS/OpenGL Trace View

还有一些见到的比较方便的快捷键(Eclipse)操作
比如:

1
2
3
4
Alt + / 提示补全
Ctrl + D 删除单行
Ctrl + 鼠标单击 查看文档
根据提示信息寻找对应的Listener类。

##关于 Android 开发的想法

暂时的理解是,如果以职业化为目标,Android开发的学习的重点应该在于以下:
1.网络编程
2.动画效果,更简洁美观的UI,用户交互
3.底层 (以可以深度定制Android系统为目标)

因为很多商家的APP的业务逻辑都是在服务器端完成的,Android APP更多作为一个显示UI。与服务器的大量远程调用和数据交换操作,因此需要有扎实的网络编程基础。

动画效果,简洁美观的UI是重要的第一印象,而且一般app的逻辑部分不会特别复杂(复杂的一般在服务端完成),所以UI应该受到更多重视。
关于用户交互则有更多的细节了,在哪个位置安放广告会更容易吸引到用户的注意力,应该如何设置按钮?怎样引导用户进行最初的应用使用学习?这部分职能一定程度上似乎与产品有重合。

关于对Andorid系统进行深度定制开发也是很多企业的重要需求。

几个不错的作品

并不是我做的,不过感觉这两个作品是几个刚接触Android的同学在5天内搞定的。
见识到了Sketch强大的设计能力,大概在输入检查什么的各种细节上还有很多问题,但是至少在UI上不会给人感觉太糟糕,感觉这些代码也可以参考。

[1] [https://github.com/JetMuffin/Maipu]

还有一份全国各省市的经度纬度数据,来自InnerAc的二次整理

参考资料

[1] Android WiFi ADB - Android Studio插件