通过前面的文章,Android系统源代码编译成功后,我们开始植入第一个应用程序到系统中去。
首先进入到系统源代码目录,在packages/experimental目录下
新建项目AndyCode,目录结构如下:

MainActivity.java源代码

package com.byhook.andy;import android.app.Activity;
import android.os.Bundle;public class MainActivity extends Activity {@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);}
}

activity_main.xml内容如下:

<?xml version="1.0" encoding="utf-8"?>
<FrameLayoutxmlns:android="http://schemas.android.com/apk/res/android"xmlns:tools="http://schemas.android.com/tools"xmlns:app="http://schemas.android.com/apk/res-auto"android:layout_width="match_parent"android:layout_height="match_parent"tools:context="com.byhook.andy.MainActivity"><TextViewandroid:layout_width="match_parent"android:layout_height="wrap_content"android:padding="25dp"android:text="@string/app_hello"android:gravity="center"/></FrameLayout>

strings.xml内容如下:

<resources><string name="app_name">AndyCode</string><string name="app_hello">Hello World!</string>
</resources>

AndroidManifest.xml文件内容如下:

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"package="com.byhook.andy" >android:versionCode="1"android:versionName="1.0.0"<applicationandroid:allowBackup="true"android:icon="@drawable/ic_launcher"android:label="@string/app_name"android:supportsRtl="true" ><activity android:name=".MainActivity" ><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
LOCAL_SRC_FILES := $(call all-subdir-java-files)
LOCAL_PACKAGE_NAME := AndyCode
include $(BUILD_PACKAGE)

开始单独编译应用程序:
source build/envsetup.sh
mmm packages/experimental/AndyCode
编译成功之后,重新打包android系统镜像文件system.img
make snod
启动模拟器
emulator &
可以看到我们的应用程序已经打包进去了

打开应用程序

小结:

之前看过《Android源代码情景分析》这本书,但是遗憾并没有将其记录沉淀下来,最近决定重新温习一下,希望能有新的认识和积累,不过原书的源代码还比较老,强烈建议读者使用新的源代码,实例操作。
纸上得来终觉浅,绝知此事要躬行!

android系统源代码单独编译应用程序相关推荐

  1. Android系统源代码情景分析:基础知识

    老罗(罗升阳)发表在的InfoQ上的好文,最新在学习Android,转载一下,方便学习. 老罗的CSDN blog链接:http://blog.csdn.net/Luoshengyang/ 原文链接: ...

  2. 《Android系统源代码情景分析》一书勘误

    在大家的支持和鼓励下,<Android系统源代码情景分析>一书得以出版了,老罗在此首先谢过大家了.本书的内容来源于博客的文章,经过大半年的整理之后,形成了初稿.在正式出版之前,又经过了三次 ...

  3. Android系统源代码下载

    引用:http://www.cnblogs.com/mandroid/archive/2011/06/06/2073473.html 一.概述 众所周知,Android移动操作系统是Google花费了 ...

  4. Android 笔记 android 7.0 单独编译framwork不生效的解决

    android 7.0 单独编译framwork不生效 以前android 5.0系统单独编译时,只需要将out/target/product/sim6737t_66_m_n/system/frame ...

  5. 老罗的《Android系统源代码情景分析》翻了10遍还看不懂?因为你用错了

    最近老朽又把罗升阳老师的<Android系统源代码情景分析>拿出来啃了一番. 为什么要加个"又"呢?因为从老罗的第一版开始到迄今为止尚未更新的第三版为止,每年有学习冲动 ...

  6. 02 A33 Android系统源码编译

    下载源码包,解包后进入Android-SDK/tools目录. 1 先安装dtc-master和fakeroot工具. dtc-master安装方法: 解包后,在源码目录下: make &&a ...

  7. Android菜鸟的成长笔记(5)——Android系统源代码你下载了吗?

    在上一篇中我们用Android系统源代码分析了我们前面写的代码,有的朋友可能就会问怎么才能下载到Google官方的源代码呢?下面我们通过Git管理工具来对Android系统源代码进行下载.另外为了方便 ...

  8. 获取并编译linux源码,android获取源代码、编译、命令

    ---my--- 正确的编译android sdk: cd myandroid . ./build/envsetup.sh lunch sdk-eng make sdk //或者: make PROD ...

  9. 第二讲:Android系统构架分析和应用程序目录结构分析

    2019独角兽企业重金招聘Python工程师标准>>> 本讲内容: Android系统构架简介 Android应用程序结构分析 点这里下载:Android学习指南第二讲源代码 一.A ...

  10. android 网络调试 源代码,一个步骤教你调试Android系统源代码

    有时候我们为了搞懂Android系统组件的运行原理,需要查看系统的源代码,但是如果我们不仅能看源码,要是还能调试,岂不是更好更方便. 所以,我们就说下如何调试系统源代码.其实很简单的了. 1.确认自己 ...

最新文章

  1. 芬兰开放“线上AI速成班”课程,全球网民均可免费观看
  2. 【codeforces 242E】XOR on Segment
  3. 卷积神经网络的“封神之路
  4. python3.5怎么安装pip-在python3.5中使用pip
  5. 公司前台打印机的连接方法(超级简单)
  6. python函数默认参数作用域
  7. PostgreSQL mysql 兼容性之 - 字符编码转换 CONVERT
  8. php mysql防卡_php mysql防止sql注入详解
  9. React引入,运行
  10. stretchlim函数
  11. Python 数据结构 树
  12. 一次性通过CISSP考试之旅
  13. STM32CubeIDE HAL库微秒us的延时Delay实现
  14. 教你如何写出高效整洁的 css 代码——css优化(转载)
  15. 安卓双摄像头录像_USB双摄像头app下载-USB双摄像头 安卓版v9.9.1-PC6安卓网
  16. 在现有oracle服务器上新建一个oracle实例
  17. 【论文阅读】Structured Pruning Learns Compact and Accurate Models
  18. 关于MOS管栅极和栅介质(氧化物)的材料选择
  19. MATLAB实验8:数据处理与多项式计算
  20. 【Premiere】入门自学 1

热门文章

  1. uniapp区分不同平台
  2. Inceptor如何访问本地文件
  3. 详解离线安装Python库
  4. 凯撒密码matlab转换,教你如何简单使用凯撒密码 详细始末
  5. C++餐厅订餐管理系统
  6. via浏览器原始css,简约却不简单—via浏览器
  7. Linux中使用SSH服务远程连接Linux系统
  8. matlab 剪裁视频教程,matlab截取一段视频和裁剪一小块视频区域
  9. Linux设备驱动开发详解
  10. 《Java语言程序设计》(基础篇原书第10版)第五章复习题答案