2014年7月27日 15:02:57

附:

android 官方培训课程中文版 //官方简单的入门教程, 每个大类中只介绍了几个知识点, 可以快速搭建一个hello world

android 开发手册 // 详细介绍了每个知识类中的每个知识点, 其用法, 解释, 手机截图等

首先是搭建环境(下边讲的是比较早的用eclipse搭建的, 目前官网都推荐了Android studio 开发了):

1. 把android官方给的那个ant下载下来,按照说明安装就行了,这里说的就是,ant:就是包含了已经配置好的eclipse + android sdk + sdk manager 不用你在额外下载这几个,然后再进行配置了

2.java环境,下载jdk等等的

3.环境变量,分两部分:一部分是把java一些可执行文件的路径写进去,一部分是把android sdk的一些工具路径写进去(在敲命令行时使用): sdk/tools 和 sdk/platform-tools 这两个路径

命令行运行 android avd时出错:

ERROR: SWT folder '' does not exist.
Please set ANDROID_SWT to point to the folder containing swt.jar for your platform.


此时,要把Java+android sdk相关的一些环境变量值整体移到环境变量path的最前边,不用重启电脑
 
W/AudioService(382): Soundpool could not load file: /system/media/audio/ui/KeypressStandard.ogg

解决办法:

1:设定模拟器禁止响应点击按钮时有提示音

2:编辑模拟器,选择 emulation options的GPU选项

参考: http://stackoverflow.com/questions/19872307/eclipse-soundpool-loading-error

--------生成hello world---------

首先可以显示"hello world"字符串的是一个文本控件,这个控件定义在一个叫activity_main.xml文件里,名字为<TextView .... />

里边定义了显示这个hello world字符串的控件的长宽等样式,以及hello world这个字符串,

值得注意的是,这个xml标签里边并不直接写进去"hello world"这个字符串而是这样:

android:text="@string/hello_world"

意思是在一个叫strings.xml的文件中,找到一个叫hello_world的string标签,将标签中的文本替换到此处:

<string name="hello_world">Hello world!</string>

然后说说显示这hello world的流程:

程序运行时会执行MainActivity.java代码里的OnCreate()函数;

这个函数里的一条语句:

setContentView(R.layout.activity_main);

他会加载一个叫activity_main的xml文件,作为参数去渲染显示出"hello world", 这个activity.xml文件就是上边说的那个包含了可以显示helloworld字符串的控件的文件

R.layout.activity_main => res/layout/activit_main.xml

---------点击一个窗口里的按钮,触发显示另一个窗口---------

刚接触,给我的印象就是,一个activity,就是一个窗口

官方文档说:项目中所有的activity都必须在一个叫AndroidMainifest.xml里描述

All activities must be declared in your manifest file, AndroidManifest.xml, using an <activity> element.

每一个acrivity 都会对应一个java类,每个Java类里都会通过其中的onCreate()方法去显示一个窗口

这里的"点击一个按钮,显示一个窗口",本质上就是点击A窗口里的这个按钮,去触发执行弹出B窗口的onCreate()方法 // onCreate里面尽量少做事情,避免程序启动太久都看不到界面

这个按钮绑定了一个函数,这个函数在按钮被点击时被执行,然后通过这个函数去调用B窗口的onCreate()方法

现在要注意两点,一个是A窗口是怎么把数据传递到B窗口的,另一个是怎么去触发另一个类的onCreate()方法

第一个问题: 有一个叫Intent的类,他可以存储这些信息,用来进行两个类的通信,使用的时候要指定要和哪个类通信,通信的数据是什么

第二个问题:在上一步准备好了Intent类后,调用一个牛逼函数startActivity();并把初始化好Intent类的对象当作参数传递给这个方法

然后,然后就调用了B窗口对应的那个类的onCreate方法,然后,B窗口就显示出来了......

点击图标启动应用程序:

当用户从主界面点击程序图标时,系统会调用app中被声明为"launcher" (or "main") activity中的onCreate()方法。这个Activity被用来当作程序的主要进入点。

如果程序中没有声明了MAIN action 或者LAUNCHER category的activity,那么在设备的主界面列表里面不会呈现app图标。

activity 状态与可见的关系

resumed 唤醒状态, 全部可见

paused 暂停状态, 部分可见, 即切换界面

stopped 终止状态, 隐藏,不可见

一旦onCreate 操作完成,系统会迅速调用onStart() 与onResume()方法, 技术上来说, activity在onStart()被调用后开始被用户可见

android 初探的更多相关文章

  1. Android——初探Dagger2依赖注入

    1,在做项目时,经常需要在一个对象里去创建另一个对象的示例,这种行为是产生耦合的常见形式,对于一个大型项目来说,过多的相互依赖会导致代码难以维护,很容易就会碰到修改一个小需求需要大面积的修改各种代码, ...

  2. Android -- 初探MVP模式

    1,相信大家对mvp模式都很熟悉了,M-Model-模型.V-View-视图.C-Controller-控制器.MVP作为MVC的版本演化,与MVC的意义类似:M-Model-模型.V-View-视图 ...

  3. android初探

    随着nodejs的不断发展,前端的范围越来越大,所以,适当的了解移动端是非常有必要的,比如使用RN开发app,前端必须要和安卓工程师沟通共同开发,那么学习android的基本知识就很重要了,因为目前安 ...

  4. Lottie开源库实现Android动画效果

    Lottie简介 Lottie是一个支持Android.iOS.React Native,并由Adobe After Effects制作aep格式的动画,然后经由bodymovin插件转化渲染为jso ...

  5. Android RxJava/RxAndroid结合Retrofit使用

    概述 RxJava是一个在 Java VM 上使用可观測的序列来组成异步的.基于事件的程序的库.更重要的是:使用RxJava在代码逻辑上会非常简洁明了,尤其是在复杂的逻辑上.告别迷之缩进. RxAnd ...

  6. React Native 常用学习链接地址

    Android Studio下载http://www.android-studio.org/ 第二章:Android Studio概述(一)http://ask.android-studio.org/ ...

  7. Android开发学习之路-RecyclerView使用初探

    在进行一些MaterialDesign规范开发的时候,比如之前说到的CoordinateLayout实现的向上折叠效果的时候,如果依然使用ListView,那么这种效果是做不出来的,因为ListVie ...

  8. Android热修复之微信Tinker使用初探

      文章地址:Android热修复之微信Tinker使用初探 前几天,万众期待的微信团队的Android热修复框架tinker终于在GitHub上开源了. 地址:https://github.com/ ...

  9. 《Android 性能测试初探》

    移动测试站点推荐: https://testerhome.com/ 专项相关帖子推荐: <Android 性能测试初探>合集 移动无线应用专项测试浅谈 公开课: [腾讯课堂]Testerh ...

随机推荐

  1. poj2528 线段树+离散化

    由于坐标可能很大,此时需要离散化,将值转化为对应的坐标. #include<stdio.h> #include<algorithm> using namespace std; ...

  2. Jquery-获取父级元素parent

    1. parent([expr]): 获取指定元素的所有父级元素 <div id="par_div"><a id="href_fir" hre ...

  3. mysql-分页查询方案

    一.直接使用limit最简单查询方法: , 在中小数据量的情况下,这样的SQL足够用了,唯一需要注意的问题就是确保使用了索引. 随着数据量的增加,页数会越来越多,查看后几页的SQL就可能类似: , 言 ...

  4. Java基础-被final修饰的引用变量的指向

    final修饰的引用变量一旦初始化赋值之后就不能再指向其他的对象,那么该引用变量指向的对象的内容可变吗?看下面这个例子: public class Test { public static void ...

  5. Java基础-JVM堆与栈

    首先看一个解析列子 JVM的内存空间: (1). Heap 堆空间:分配对象 new Student() (2). Stack 栈空间:临时变量 Student stu (3).Code 代码区 :类 ...

  6. 【 CodeForces 604A】B - 特别水的题2-Uncowed Forces

    http://acm.hust.edu.cn/vjudge/contest/view.action?cid=102271#problem/B Description Kevin Sun has jus ...

  7. 【UVA 1451】Average

    题 题意 求长度为n的01串中1占总长(大于L)的比例最大的一个子串起点和终点. 分析 前缀和s[i]保存前i个数有几个1,[j+1,i] 这段区间1的比例就是(s[i]-s[j])/(i-j),于是 ...

  8. Oracle定时执行存储过程

    首先查看 SQL> show parameter job NAME                                 TYPE        VALUE-------------- ...

  9. TYVJ1038 忠诚

    hzw学长博客里的2048,根本停不下来! 描述 老管家是一个聪明能干的人.他为财主工作了整整10年,财主为了让自已账目更加清楚.要 求管家每天记k次账,由于管家聪明能干,因而管家总是让财主十分满意. ...

  10. i++和++i

    这个问题总是讨论,有时又被弄晕了,特来复习一下 ; ; cout<<s<<endl; cout<<5,而i+++4返回4,其实这样的i++先运算,再加,++i先加再 ...