基于UT4418编写自己的第一个Android程序 (五)

基于UT4418编写自己的第一个Android程序 (五)


今天老谢要学习如何编写自己的第一个Hello Android程序,并使其在UT4418开发板上运行。


一、决定使用UT4418开发板

经过几番纠结,老谢做了一个决定,将学习平台从原先的虚拟处理器goldfish换到了实际的UT4418开发板(免费给友坚科技打广告了)。老谢做这个决定,主要原因如下:

  1. 老谢也算是有些许的硬件背景,搞开发,或做学习,都不希望脱离底层硬件,说白了,就是自己喜欢玩摸得着的;
  2. 在写博客之前,老谢就已经入手了UT4418 Android开发板,还是想物尽其用,不想浪费;
  3. 基于开发板的学习,会更加接近实际项目开发;
  4. 另外,平台的切换和之前写的几篇博客不冲突,即之前的文章在UT4418上同样受用。
    这里写图片描述

此货将会在未来很长一段时间陪伴老谢,它就是UT4418。

购买此货时,友坚科技有提供相应的source code(android 4.4)、使用手册、开发工具等,老谢分享于此,
http://pan.baidu.com/s/1i58Qadn
如果有涉及侵权等,请第一时间联系老谢,谢谢。


由于换了平台,编译环境、编译方法等与之前介绍goldfish时有小小差别,不过是大同小异了。无论你的学习是基于goldfish、UT4418、还是别的开发平台,编译source code等都是最基本的前提,方式方法存在小小差异,但理论绝对统一,老谢在此也不过多解释。

变更平台后,老谢花了小小时间熟悉了开发板的使用(包括开发环境的搭建,source code的编译,以及如何升级开发板程序等)。待一切都已经ready后,编写属于自己的第一个Android程序才是今天的重点。


二、Hello Android

大家都知道Android开发有两个大的方向:

  1. Android apk开发,即Android应用APP开发方向;
  2. Android底层开发,driver驱动方向。

老谢的主要方向是后者,那为何还要学习apk程序编写呢?其实,在后续的学习中,我们需要验证自己对某个知识点的理解是否正确,极有可能需要自己写一些测试程序来验证,那么自己写apk自然就很重要。但是,这种重要仅限于按照自己的实验需求来编写极其简单的apk应用程序。

Hello Android这个apk的编写,就是为了打通一条路,告诉我们如何在Android源代码中添加一个Android应用程序,并将其编译进Android系统,最后使其在开发板上运行。

第一步,

在./packages/apps目录下新建HelloAndroid文件夹,并按照如下目录结构,建立相应的folder

这里写图片描述

第二步,

在HelloAndroid/src/bo/xie/hello目录下新建HelloAndroid.java文件,并在其内输入:

package bo.xie.hello;

import android.app.Activity;
import android.os.Bundle;
import android.util.Log;

public class HelloAndroid extends Activity{
    private final static String LOG_TAG = "bo.xie.hello.HelloAndroid";

    @Override
    public void onCreate(Bundle savedInstanceState){
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);

        Log.i(LOG_TAG, "HelloAndroid Activity Created.");
    }
}

这是应用程序的源代码文件,定义了Activity组件HelloAndroid,作为应用程序的主界面。

第三步,

在HelloAndroid/res/layout目录下新建文件main.xml,并在其中输入:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.androidcom/apk/res/android"
    android:orientation="vertical"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:gravity="center">
        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:gravity="center"
            android:text="@string/hello_android">
        </TextView>
</LinearLayout>

在屏幕中间用TextView控件来显示一段“Hello Android”文本。

第四步,

在HelloAndroid/res/values目录下新建文件strings.xml,输入:

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <string name="app_name">HelloAndroid</string>
    <string name="hello_android">Hello Android</string>
</resources>

第五步,

在HelloAndroid/res/drawable目录下放入图片文件icon.png,这是应用程序的图标。

第六步,

在HelloAndroid目录下新建AndroidManifest.xml文件,输入:

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="bo.xie.hello"
    android:versionCode="1"
    android:versionName="1.0">
    <application android:icon="@drawable/icon"
        android:label="@string/app_name">
        <activity android:name=".HelloAndroid"
            android:label="@string/app_name">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
    </application>
</manifest>

这是Android应用程序的配置文件,Activity等组件需要在这个文件中配置后方可使用。

第七步,

在HelloAndroid目录下新建Android.mk编译脚本文件,指定应用程序的名字为“HelloAndroid”

LOCAL_PATH:= $(call my-dir)
include $(CLEAR_VARS)
LOCAL_MODULE_TAGS := optional
LOCAL_SRC_FILES := $(call all-subdir-java-files)
LOCAL_PACKAGE_NAME := HelloAndroid
include $(BUILD_PACKAGE)

三、编译apk并验证

至此,我们的HelloAndroid程序代码已经编写完成,那如何将此程序编译进入我们的系统里呢?接着往下看。

我们还需要修改Android的makefile来配置需要编译的apk程序。进入./build/target/product目录找到generic.mk,此mk文件include了generic_no_telephony.mk文件,按照如下方式修改:

这里写图片描述

编译Android body

现在的修改只是涉及到Android部分,单独编译Android即可,UT4418的编译方式如下:
./build.sh -t android

最后,我们可以在./out/target/product/urbetter_s5p4418/system/app目录下看到编译生成的HelloAndroid.apk。此时在./out/target/product/urbetter_s5p4418目录下编译生成的system.img已经包含了HelloAndroid.apk。

升级验证

将编译出来的system.img升级到开发板中,待升级完毕后,在开发板上就能看到咱们的第一个HelloAndroid程序了,第二排第二个,看见了吧。

这里写图片描述


最后,老谢要感谢罗升阳老师,对Android的贡献与分享,谢谢您。

itxiebo
20160419

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值