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. 【CodeForces 605A】BUPT 2015 newbie practice #2 div2-E - Sorting Railway Cars

    http://acm.hust.edu.cn/vjudge/contest/view.action?cid=102419#problem/E Description An infinitely lon ...

  2. 42.Android之ListView中ArrayAdapter简单学习

    今天学习下Android中ListView关于ArrayAdapter数据绑定, 废话少说直接上代码. 改下布局文件: <?xml version="1.0" encodin ...

  3. 【poj1201】 Intervals

    http://poj.org/problem?id=1201 (题目链接) 题意 给出n个区间${[ai,bi]}$,要求选出尽可能少的数,使得每个区间i中至少存在${c[i]}$个数. Soluti ...

  4. PowerDesigner更改数据库类型

    如图,直入:

  5. USACO 3.2 msquare 裸BFS

    又是个裸BFS... 和西安网赛那道1006一样的,只不过加上了要记录方案.顺便复习map 记录方案直接在bfs队列的结点里加一个vector<int> opt,把从开头一直到当前结点的操 ...

  6. java连接mysql(三)

    事务的四大特性(ACID) 原子性(Atomicity) 原子性是指事务是一个不可分割的工作单位,事务中的操作要么全部成功,要么全部失败.比如在同一个事务中的SQL语句,要么全部执行成功,要么全部执行 ...

  7. POJ1258Agri-Net(prime基础)

    Agri-Net Time Limit: 1000MS   Memory Limit: 10000K Total Submissions: 46811   Accepted: 19335 Descri ...

  8. Linux中vi编辑器的用法

    实验一: vi编辑器的模式切换 1.       实验目标:熟练掌握vi编辑器的三种模式间切换及其特点 2.       实验操作步骤: 步骤一: 进入vi编辑器即命令模式 进入vi编辑器可以在命令终 ...

  9. IDEA 从SVN检出项目相关配置

    1.新建好一个工程,然后通过SVN检出项目 2.检出后一般tomcat的环境是配置好的,点击上方Project Structure按钮,弹出窗体,查看Project项,一般没问题,如果要配置就配置Pr ...

  10. 锋利的jQuery-7--一个$.fn.color插件的编写过程

    编写一个设置和获取元素的color的插件: 首先实现第一个功能,设置: ;(function($){ $.fn.extend({ color:function(value){ return this. ...