`
地球小野花
  • 浏览: 163137 次
  • 性别: Icon_minigender_1
  • 来自: 马赛大回旋
社区版块
存档分类
最新评论

Android应用程式编译成系统程序

阅读更多

 

Android应用程式编译成系统程序简介

 

简介:在android操作系统中,有一些应用程序,如打电话,系统设置、闹钟等等在我们购买手机的时候就已经有了,如果我们想写一个应用程序到系统中,而又不给用户删除。该如何做?本文将提供一个简单的例子,看看android系统里是如何把应用程序写入系统中去的。

 

1、开发环境

     操作系统:Ubuntu xx

     开发工具:Eclipse

     Android SDK:android 2.2

2、开发环境搭建过程

    要想把android应用程序写入系统中,首先要搭建一个android文件系统的开发环境。由于网上很多搭建环境的例子,这里只罗列要点二具体介绍。

    (1)、下载Android文件系统源码

    http://source.android.com/source/download.html

    (2)、Eclipse源码开发环境

    http://source.android.com/source/using-eclipse.html

    (3)、Eclipse开发App环境

    这个可以参考android sdk 的文档或者网上查找资料

 

 

3、以Helloworld为例

     (1)、建立一个App

在Eclipse-App开发环境中新建一个Android Project命名为Helloworld,然后在模拟器上调试运行。将会见到下看到Helloworld 程序运行,并在屏幕上显示Hello world ,Main!这一步我们不需要写任何的代码。

     (2)、移植App到Android

       在linux系统中进入Android的源码目录,来到./package/apps/Settings/ 目录,把这里的Android.mk复制到刚才那个HelloWorld App 的 跟目录下,并修改Android.mk文件

 

Android.mk

 

LOCAL_PATH:= $(call my-dir)

include $(CLEAR_VARS)

LOCAL_MODULE_TAGS := optional

LOCAL_SRC_FILES := $(call all-java-files-under, src)

LOCAL_PACKAGE_NAME := Helloworld #与工程名字相同

LOCAL_CERTIFICATE := platform

include $(BUILD_PACKAGE)

# Use the folloing include to make our test apk.

include $(call all-makefiles-under,$(LOCAL_PATH))

 

 

    (3)、修改/bulid/target/product/generic.mk 把工程编译到系统中

 

 

generic.mk

 

#

# Copyright (C) 2007 The Android Open Source Project

#

# Licensed under the Apache License, Version 2.0 (the "License");

# you may not use this file except in compliance with the License.

# You may obtain a copy of the License at

#

#      http://www.apache.org/licenses/LICENSE-2.0

#

# Unless required by applicable law or agreed to in writing, software

# distributed under the License is distributed on an "AS IS" BASIS,

# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.

# See the License for the specific language governing permissions and

# limitations under the License.

#

 

# This is a generic product that isn't specialized for a specific device.

# It includes the base Android platform.

 

PRODUCT_PACKAGES := \

    AccountAndSyncSettings \

    CarHome \

    DeskClock \

    AlarmProvider \

    Bluetooth \

    Calculator \

    Calendar \

    Camera \

    CertInstaller \

    DrmProvider \

    Email \

    Gallery3D \

    LatinIME \

    Launcher2 \

    Mms \

    Music \

    Provision \

    Protips \

    QuickSearchBox \

    Settings \

    Sync \

    Updater \

    CalendarProvider \

    SyncProvider \

    Helloworld

 

$(call inherit-product, $(SRC_TARGET_DIR)/product/core.mk)

 

# Overrides

PRODUCT_BRAND := generic

PRODUCT_DEVICE := generic

PRODUCT_NAME := generic

 

    (4)、将Android工程拷贝到./package/apps/目录下

 

此时,系统的代码环境已经构建好。

 

    (5)、编译Android SDK 

     在Android源码根目录下执行:#make sdk

 

     等待......

 

    编译完成后

 

    来到/out/host/linux-x86/sdk/android-sdk_eng.root_linux-x86/tools/下,执行 :

 

    ./emulator -avd ANDROID2

 

    启动模拟器,就会开到Helloworld会在Android系统中。

 

    通过设置->应用程序->管理应用程序->全部-选择->Helloworld (如下图示我们可以看到该程序为一个系统默认启动的程序,并且用户不可以将其卸载

 



 

3
0
分享到:
评论
3 楼 lightsh 2011-03-09  
感谢分享
2 楼 地球小野花 2011-03-09  
lljl2009 写道
请教个问题:
在makefile中添加完项后,为什么是执行了make sdk而不是make?


make sdk 是编译成模拟器,make编译出来的是img。
1 楼 lljl2009 2011-03-02  
请教个问题:
在makefile中添加完项后,为什么是执行了make sdk而不是make?

相关推荐

    android编译系统分析.pdf

    Android编译系统分析是Android系统中一个非常重要的组件,它负责将Android应用程序代码编译成能够在Android设备上运行的机器代码。下面是Android编译系统分析的详细知识点: 一、Android编译系统概述 Android...

    Android应用程序资源管理框架 PPT

    资源在Android应用程序编译的过程中,也会被编译成二进制格式。这是为了压缩资源存储空间,以及加快运行时的资源解析速度。Android应用程序在运行的时候,资源管理器AssetManager和Resources会根据当前的机器设置,...

    Android应用程序开发以及背后的设计思想深度剖析

    这篇文章将逐步揭示Android应用程序背后的设计思想,从基本的 APK 文件结构到更复杂的系统组件和编程模型。 首先,让我们深入了解 APK 文件。APK 是 Android 应用程序的基本打包格式,实质上是一个被压缩的 ZIP ...

    Lazarus开发Android应用程序指南2017版

    Lazarus开发Android应用程序的过程,从环境配置到应用的编译、生成APK文件,再到测试安装,整体操作简洁明了,适合希望快速开始Android应用开发的Pascal语言开发者。这种跨平台的开发方式有助于开发者利用已有的...

    android程序编译打包工具

    首先,Android应用程序的核心编译过程涉及Java源代码的转换。开发者通常使用Android Studio,这是一个基于IntelliJ IDEA的集成开发环境(IDE),它包含了构建、调试和打包Android应用所需的所有工具。Android Studio...

    基于LLVM的Android应用程序编译时虚拟化保护之软件工程研究.docx

    本文档探讨了基于LLVM的Android应用程序在编译时如何利用虚拟化技术进行安全保护,特别关注了软件工程的视角。首先,文章介绍了Android操作系统在全球范围内的广泛使用及其在移动互联网领域的主导地位。随着Android ...

    Lazarus开发Android应用程序指南(2017新版)第一部分

    本指南将详细介绍如何使用Lazarus来开发Android应用程序,特别关注2017年更新版的新特性与优化。 在2017年的版本中,Lazarus为Android开发带来了一系列改进,包括更好的兼容性、优化的性能以及更多的组件支持。首先...

    Android应用程序反编译套件

    Android应用程序反编译套件,提供常见的android反编译软件

    Android 系统编译 and 应用裁剪

    这涉及到对Linux内核、HAL(硬件抽象层)、系统库、框架服务以及各种应用程序的编译和集成。系统编译的目的是将源代码转化为可以在特定硬件上运行的二进制文件。 1. **获取源码**:首先,你需要从Android开源项目...

    Lazarus开发Android应用程序指南(中文首发版)

    ### Lazarus开发Android应用程序指南知识点详解 #### 环境搭建 **下载安装JDK** - 开发Android应用的首要条件是安装Java开发工具包(JDK),可以从Oracle官网下载,选择合适的版本以匹配开发需求。 **下载安装...

    android程序反编译工具

    能轻松破解android程序的资源包,包含布局文件,字符资源,还有图片等(程序的布局文件没破解前是不能直接打开的)

    Android应用程序资源的编译和打包过程分析借鉴.pdf

    Android 应用程序资源的编译和打包过程分析 Android 应用程序资源的编译和打包过程是 Android 应用程序开发中的一个重要步骤。在这个过程中,Android 资源打包工具 aapt 会将文本格式的 XML 资源文件编译成二进制...

    Android应用程序开发宝典-基于TE&OK6410;.pdf

    ### Android应用程序开发宝典-基于TE&OK6410 #### 一、概述 《Android应用程序开发宝典-基于TE&OK6410》是一份详尽的指南文档,旨在帮助开发者们掌握如何利用Android平台进行应用程序的开发,特别是在针对特定硬件...

    android应用程序基础

    Android应用程序框架是构成Android应用程序的基本结构,它定义了应用程序如何与Android操作系统交互以及如何管理和控制应用程序的行为。Android应用开发主要依赖于Java语言,通过调用Android提供的各种API来实现功能...

    Android Dalvik文件 编译方法

    Dalvik 是 Android 操作系统中的虚拟机字节码格式,所有 Android 应用程序都需要将 Java 代码编译成 Dalvik 字节码格式才可以在 Android 设备上运行。 什么是 Dalvik 文件? Dalvik 文件是一种特殊的字节码格式,...

    HelloWorld之Android应用程序详细结构介绍

    【Android应用程序详细结构介绍】 Android应用程序的开发通常在Eclipse集成开发环境中进行,它提供了便捷的工具来创建和管理Android项目。"HelloWorld"作为入门级的程序,可以帮助初学者理解Android应用程序的基本...

    buildroot静态编译Android平台程序

    本文将详细介绍如何使用Buildroot静态编译Android平台上的应用程序,如nginx或mosquitto等。 首先,理解静态编译与动态编译的区别。动态编译的程序在运行时依赖于系统中的动态链接库,如果库版本不匹配,就会出现...

    Android应用开发与系统改造实战.王保卫等.源代码

    本资源也可从人民邮电出版社网站下载。但由于源代码资源CSDN尚未有... 本书适合作为Android应用程序开发者的实践教材,也适合对Android系统原理有极大兴趣的爱好者阅读,还可供Android系统改造人员作为参考书使用。

Global site tag (gtag.js) - Google Analytics