zoukankan      html  css  js  c++  java
  • android 初探

    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()被调用后开始被用户可见

  • 相关阅读:
    ReportMachine打印条形码的问题
    性能测试基础知识
    jmeter请求参数中文乱码及无法读取CSV文件解决办法
    soapui学习
    java环境变量和查看安装路径
    python字典中显示中文
    Jmeter做webservices接口测试
    windows 上robot framework 读取sqlite3提示:OperationalError: unable to open database file错误
    c++ 复习练习
    笔记草稿。
  • 原文地址:https://www.cnblogs.com/iLoveMyD/p/3871405.html
Copyright © 2011-2022 走看看