初学安卓

好书

经xyz大神推荐,我开始看《第一行代码》来入门安卓,第一章就让人感觉这本书是很好的书!讲得很清楚,而且分析得到位,有种高屋建瓴的感觉。Top-down的视野对于一个初学者的作用是无比巨大的!
首先了解到的是安卓的一些基本的知识,它提供了什么什么厉害的东西,原来它是linux 2.6内核改的,各种高效的硬件驱动由此而来,与Java还是有挺大的区别的,谷歌大婶为了它也是操碎了心,哈哈。

Android的系统架构

  1. Linux内核
  2. 系统运行库层(C/C++写的,效率就不用说啦。比如有SQLite提供数据库的支持,类似Java虚拟机的Dalvik,OpenGL ES提供3D绘图的支持(图形学课上刚学过),Webkit提供浏览器内核的功能)
  3. 应用框架层(Android系统自带了丰富的API,自己也可以自定义)
  4. 应用程序层

Android的四大部件

  1. Activity(活动),界面的?
  2. Service(服务),后台的,比如wifi,蓝牙等?
  3. Broadcast Receiver(广播接收器),允许应用接收各处的广播消息
  4. Content Provider(内容提供器),为应用程序之间共享数据提供了可能
    虽然现在只是一知半解,不过后面慢慢理解就可以了。

Hello world例子

环境配置什么的就不说了,新建工程也很简单,填写好工程的名字,选择好Android的版本,再自定义一下Activity的名字,就可以了。每次都会自动产生一个Hello World的例子,不过麻雀虽小,五脏俱全!下面简单分析一下它的“五脏”:
安卓工程的目录如下图(我用的是Android Studio):
初学安卓_第1张图片
图1 安卓工程目录

其中主要看app目录下的:
1)build是放编译出来的东西;
2)libs是放工程需要的另外一些jar包;
3)在Android Studio中,代码(java)和资源(res)一起放在src目录下,AndroidManifest.xml是主管整个应用的布局,androidTest可以暂时不用管;
4)java目录是放代码的,比如Hello world例子就只有一个代码文件:HelloWorldActivity.java;
5)res是放资源文件的,如下图所示,它里面有layout是布局,menu是菜单,mipmap-*是存放图片的(一般放在mipmap-hdpi下就好了,其它的区别只是分辨率而已,据说),values是存放字符串的(因为安卓强烈不建议将字符串硬编码在代码中,而是推荐在xml文件中通过@string/string_name的形式来引用)。

图2 res目录

运行!!!

如何运行呢?用模拟器运行,我出现各种各样奇葩的问题,yz说真机调试更快,而且没有模拟器的各种配置的问题,那么怎么设置真机调试呢?简单四个小步骤(google到的,哈哈):
初学安卓_第2张图片
图3.1 真机调试1

初学安卓_第3张图片
图3.2 真机调试2

结果

到了摘取革命胜利果实的时候啦:
初学安卓_第4张图片
图4 手机上的显示效果

总结

今天了解了Android的整体架构以及工程目录结构,基本开发知识get√
还了解了一个日志工具:Logcat,貌似AS不需要安卓,自带的,因为真机调试的时候就看到了它,如图5。不过还可以在代码中结合Log来使用,具体做法是在代码中先import包Log:

import android.util.Log;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_hello_world);
    // 注意着最后一行
    Log.d("HelloWorldActivity", "______________onCreate execute______________");
}

Log的各种级别参考图6,具体用法和作用以后慢慢体会。

图5 Logcat(貌似AS自带有)


图6 Log的各种级别

Reference

  1. 郭霖的《第一行代码》
  2. 由于1中的书是在Eclipse上做的,跟Android Studio上很不一样,找到了这个博客,它结合了书和AS来讲:http://www.cnblogs.com/DebugLife/p/4343570.html

你可能感兴趣的:(android)