Android从驱动到应用(1)_开发第一个android应用程序

参考老罗的Android系统源代码情景分析,准备系统学习下安卓,好记性不如烂笔头,这里针对学习过程做个总结。
由于涉及知识面比较广,同时会同步整理下linux内核相关的知识点,参考的内核书籍和网站列举如下:

老罗的博客
Linux内核源代码情景分析.(pdf)
Linux Device Drivers.(纸质书)
安卓应用官方文档
Google Android SDK开发范例大全.(pdf)
git hub

开始开发第一个自己的安卓应用程序。
这里是基于公司的MTK平台的代码直接进行试验,相对简单点,至少环境已经搭建完善了。
代码目录结构,这里在code/packages/experimental/下进行开发一个HelloAndroid的应用程序
在这里插入图片描述
Android应用一般包含一个源代码目录src、一个资源目录res、一个配置文件AndroidManifest.xml、和一个编译脚本文件Android.mk,下面看下具体的实现代码:
HelloAndroid.java

package shy.zpf.hello;

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

public class HelloAndroid extends Activity {
    private final static String LOG_TAG = "shy.zpf.hello.HelloAndroid";
    @Override
    public void onCreate(Bundle savedInstanceState) {
			super.onCreate(savedInstanceState);
			setContentView(R.layout.main);
			Log.i(LOG_TAG, "HelloAndroid Activity Created");
	}
}

main.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:orientation="vertical"
    android:gravity="center">

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:gravity="center"
        android:text="@string/hello_android">

    </TextView>
</LinearLayout>

strings.xml

<?xml version="1.0" encoding="utf-8"?>
<resources>

    <string name="app_name">HelloAndroid</string>
    <string name="hello_android">Hello Android</string>


</resources>

AndroidManifest.xml

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="shy.zpf.hello"
	android:versionCode="1"
	android:versionName="1.0">

    <application android:label="@string/app_name"
        android:icon="@drawable/icon">
        <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.mk

LOCAL_PATH:= $(call my-dir)
include $(CLEAR_VARS)
LOCAL_MODULE_TAGS := optional
# Only compile source java files in this apk.
LOCAL_SRC_FILES := $(call all-subdir-java-files)
LOCAL_PACKAGE_NAME := HelloAndroid
include $(BUILD_PACKAGE)

编译方式,android提供单独编译的方式,先source ./build/envsetup.sh然后mmm + 指定目录(含有Android.mk),最后打包镜像make snod就会重新打包系统镜像文件system.img

source build/envsetup.sh && mmm packages/experimental/HelloAndroid/
make snod

烧录单刷进手机看试验现象,出现apk,点击进去可以看到中间的Hello Android字样,第一个应用程序完成,哈哈。
在这里插入图片描述
在这里插入图片描述

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值