【冠亚体育手机网站】APP开发入门教程,Android程序初体验

工作中有做过手机App项目,前端和android或ios程序员配合完成整个项目的开发,开发过程中与ios程序配合基本没什么问题,而android各种机子和rom的问题很多,这也让我产生了学习android和ios程序开发的兴趣。于是凌晨一点睡不着写了第一个android程序HelloAndroid,po出来分享给其他也想学习android开发的朋友,这么傻瓜的Android开发入门文章,有一点开发基础的应该都能看懂。

第一个程序的实现的最终功能是:

一、准备工作

点击”正确”或者”错误”会得到一个是否正确的提示。

主要以我自己的开发环境为例,下载安装JDK和Android
SDK,假如你没有现成的IDE,你可以直接下载SDK完整包,里面包含了Eclipse,如果有IDE那么你可以滚动到下面选择USE
AN EXISTING
IDE,然后安装SDK,如果你的SDK在安装时找不到JDK目录,你可以在系统环境变量里添加JAVA_HOME变量,路径为你的JDK目录,我的IDE是IntelliJ
IDEA,都装好以后开始配置IDE增加SDK支持。

直接上效果图。

首先,打开Android SDK Manager把Android
4.0以上版本的未安装的都打勾装上,根据你个人实际情况,如果你只打算用自己的手机测试,那就把你机子系统一样版本的SDK包装上,下载时间有点长。

冠亚体育手机网站 1冠亚体育手机网站 2冠亚体育手机网站 3

冠亚体育手机网站 4

 

然后打开IDE创建新项目,IDEA比较智能,如果你装好了SDK,新建项目里就会出现Android的Application
Module,选择后右边Project
SDK为空,点击New按钮,找到SDK目录确定,下拉列表就会列出已经安装的各个版本的SDK,选择自己需要的版本,如果是第一次设置,IDE会提醒你先设置JDK,根据提示找到JDK目录即可。

 

冠亚体育手机网站 5

此次涉及代码编写的文件有4个:

填好项目名称后下一步选择USB
Device,然后完成项目构建,IDE会自动生成基本的项目所需的文件及目录。

冠亚体育手机网站 6

冠亚体育手机网站 7

冠亚体育手机网站 8

冠亚体育手机网站 9

package com.Kyleapp2;

二、代码编写

 

做好准备工作后,终于可以开始写我们的hello
android了,在开始编写代码之前,我们先了解几个文件:

import android.support.v7.app.ActionBarActivity;

res/layout/main.xml
App主窗体布局文件,你的应用长什么样都在这边定义,有Design和Text两种模式

import android.os.Bundle;

res/values/strings.xml
可以理解为i18n文件,这个文件用来存放程序调用的各种字符串

import android.view.Menu;

src/com/example/helloandroid/MyActivity.java
这个就是我们的主程序类,等下要实现的功能都在这个文件里添加

import android.view.MenuItem;

首先为应用添加一个id为hellotextView的textview和一个id为hellobutton的button,mail.xml
代码如下:

import android.view.View;

复制代码 代码如下:

import android.widget.Button;

<?xml version=”1.0″ encoding=”utf-8″?>
<LinearLayout
xmlns:android=””
              android:orientation=”vertical”
              android:layout_width=”fill_parent”
              android:layout_height=”fill_parent”
        >
    <TextView
            android:layout_width=”fill_parent”
            android:layout_height=”180dp”
            android:text=”@string/default_message”
            android:id=”@+id/hellotextView” android:textColor=”#00ff00″
android:gravity=”center”/>
    <Button
            android:layout_width=”wrap_content”
            android:layout_height=”wrap_content”
            android:text=”@string/button_send”
            android:id=”@+id/hellobutton”
android:layout_gravity=”center”/>
</LinearLayout>

import android.widget.Toast;

代码和控件用到的字符串定义如下:

 

复制代码 代码如下:

 

<?xml version=”1.0″ encoding=”utf-8″?>
<resources>
    <string name=”app_name”>helloandroid by
hiwanz</string>
    <string name=”button_send”>Say something</string>
    <string name=”default_message”>Click button
below!</string>
    <string name=”interact_message”>You just clicked on the
Button!</string>
</resources>

public class MainActivity<QuizActivity> extends
ActionBarActivity {

主程序中定义button点击后改变textview显示的文本,并且弹出Toast提示信息,代码如下:

 

复制代码 代码如下:

    private Button mTrueButton;

package com.example.helloandroid;
 
import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.TextView;
import android.widget.Toast;
 
public class MyActivity extends Activity {
    /**
     * Called when the activity is first created.
     */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        //得到按钮实例
        Button hellobtn = (Button)findViewById(R.id.hellobutton);
        //设置监听按钮点击事件
        hellobtn.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                //得到textview实例
                TextView hellotv =
(TextView)findViewById(R.id.hellotextView);
                //弹出Toast提示按钮被点击了
               
Toast.makeText(MyActivity.this,”Clicked”,Toast.LENGTH_SHORT).show();
               
//读取strings.xml定义的interact_message信息并写到textview上
                hellotv.setText(R.string.interact_message);
            }
        });
    }
 
}

    private Button mFalseButton;

代码写好后,电脑通过USB数据线连接手机,手机系统设置里的开发人员选项里打开USB调试,在IDE中直接点Run就可以在手机上看到运行的效果了。

@Override

冠亚体育手机网站 10

 

冠亚体育手机网站 11

protected
void
onCreate(Bundle savedInstanceState) {

应用打包

super.onCreate(savedInstanceState);

应用开发完成后就要打包发布了,在IDE的Build菜单下选择Generate Signed
APK来打包应用

setContentView(R.layout.activity_main);

冠亚体育手机网站 12

mTrueButton =
(Button)findViewById(R.id.true_button);

在弹出的Wizard对话框中需要指定签名的Key,一开始没有Key你可以点击Create
New来新建一个Key用于签名,填入签名所需的一些字段后生成Key文件
冠亚体育手机网站 13

mFalseButton =
(Button)findViewById(R.id.false_button);

使用生成的Key来签名应用包

mTrueButton.setOnClickListener(new
View.OnClickListener() {

冠亚体育手机网站 14

    @Override

冠亚体育手机网站 15

    public
void
onClick(View v) {

完成编译后会在刚才我们设置的Designation APK
path下生成我们的helloandroid.apk应用包,接下来要怎么安装应用应该不用说了吧,我们的第一个Android
App就这样诞生了。app开发推荐

    // Does nothing yet, but soon!

您可能感兴趣的文章:

  • Android
    避免APP启动闪黑屏的解决办法(Theme和Style)
  • Android如何实现APP自动更新
  • ANDROID
    完美退出APP的实例代码
  • Android
    应用APP加入聊天功能
  • Android
    App的运行环境及Android系统架构概览
  • Win10下Android
    App安装配置开发环境

        Toast.makeText

        (MainActivity.this, R.string.correct_toast,

        Toast.LENGTH_SHORT).show();

    }

});

 

mFalseButton.setOnClickListener(new
View.OnClickListener() {

    @Override

    public
void
onClick(View v) {

    // Does nothing yet, but soon!

        Toast.makeText(MainActivity.this, R.string.incorrect_toast,

                Toast.LENGTH_SHORT).show();

    }

});

}

 

 

@Override

public boolean
onCreateOptionsMenu(Menu menu) {

// Inflate the menu; this adds items to the
action bar if it is present.

getMenuInflater().inflate(R.menu.main, menu);

return true;

}

 

@Override

public boolean
onOptionsItemSelected(MenuItem item) {

// Handle action bar item clicks here. The
action bar will

// automatically handle clicks on the
Home/Up button, so long

// as you specify a parent activity in
AndroidManifest.xml.

int id =
item.getItemId();

if (id ==
R.id.action_settings) {

return true;

}

return super.onOptionsItemSelected(item);

}

}

 

冠亚体育手机网站 16

<LinearLayout xmlns:android=“”

xmlns:tools=“”

android:layout_width=“match_parent”

android:layout_height=“match_parent”

    android:gravity=“center”

    android:orientation=“vertical”
>

 

<TextView

android:layout_width=“wrap_content”

android:layout_height=“wrap_content”

android:padding=“24dp”

android:text=“@string/question” />

 

<LinearLayout

    android:layout_width=“wrap_content”

    android:layout_height=“wrap_content”

    android:orientation=“horizontal”
>

 

        <Button

        android:id=“@+id/true_button”

        android:layout_width=“wrap_content”

        android:layout_height=“wrap_content”

        android:text=“@string/true_button” />

        

        <Button

        android:id=“@+id/false_button”

        android:layout_width=“wrap_content”

        android:layout_height=“wrap_content”

        android:text=“@string/false_button” />

 

    </LinearLayout>

 

         

</LinearLayout>

 

 

冠亚体育手机网站 17

 

*/

public static final int
abc_shareactionprovider_share_with_application=0x7f0a000b;

public static final int
action_settings=0x7f0a000f;

public static final int
app_name=0x7f0a000d;

public static final int
correct_toast=0x7f0a0012;

public static final int
false_button=0x7f0a0011;

public static final int
incorrect_toast=0x7f0a0013;

public static final int
question=0x7f0a000e;

public static final int
true_button=0x7f0a0010;

冠亚体育手机网站 18

<?xml version=“1.0” encoding=“utf-8”?>

<resources>

 

<string
name=“app_name”>App2</string>

<string name=“question”>贵州是个美丽的地方?</string>

<string
name=“action_settings”>Settings</string>

 

<string name=“true_button”>正确</string>

<string name=“false_button”>错误</string>

 

<string
name=“correct_toast”>Correct!</string>

<string name=“incorrect_toast”>Incorrect!</string>

 

</resources>

 

布局预览

冠亚体育手机网站 19

 

总结:

    此过程,只需要关注以上四个文件。一下是它们各自的作用。

冠亚体育手机网站 20相当于我们的主程序文件,也就是”main.c”

冠亚体育手机网站 21显示的字符串信息在这里

 

冠亚体育手机网站 22程序界面控件在这里

 

冠亚体育手机网站 23这个不需要我们管,系统自动生成的

Post Author: admin

发表评论

电子邮件地址不会被公开。 必填项已用*标注