【发布时间】:2017-02-07 15:22:09
【问题描述】:
我有 6 个月的 Android 经验,开发简单的基于 UI 的应用程序。现在我想编写针对 Android 核心内核的应用程序。例如,我想开发一个 Android 中不存在的框架。为此,我们必须为内核编写代码。我不知道从哪里以及如何开始 Android 内核编程。
如果有人知道如何启动它,请帮助我。
【问题讨论】:
标签: android
我有 6 个月的 Android 经验,开发简单的基于 UI 的应用程序。现在我想编写针对 Android 核心内核的应用程序。例如,我想开发一个 Android 中不存在的框架。为此,我们必须为内核编写代码。我不知道从哪里以及如何开始 Android 内核编程。
如果有人知道如何启动它,请帮助我。
【问题讨论】:
标签: android
对于 android 源代码,您可以查看以下其中一项...
我个人挖this chrome plugin浏览android源码。
【讨论】:
http://stackoverflow.com/questions/6613778/downloading-and-importing-android-source-code-to-be-able-to-compile-and-edit不存在
如果您在谈论平台级编程,即框架扩展、原生库和服务有几个地方可以开始。 第一个是新的和更新的official open source project page。关于贡献和移植的部分提供了有关平台架构的一些基本信息以及使用该平台所需的内容。下一步是了解平台和框架的构建系统。如果你用谷歌搜索,网上有一些有限的信息。最好的方法可能是研究构建文件夹中开源项目中可用的一些 makefile 模板。有关如何使用 Android.mk 文件添加您自己的模块的信息,最好研究一下为现有项目制作文件,例如开源项目中外部可用的文件。
一旦您达到上述要求。那就是您了解了平台级开发的基础知识以及如何为平台构建自己的模块下一步是研究开源项目中可用的框架扩展示例。查看开源项目中的 vendor/sample/PlatformLibrary 文件夹(编辑,从 2.2 开始,供应商的东西已移至 device 文件夹)并阅读自述文件,研究代码,构建它并确保您理解它。如果您不这样做,那么 JNI、共享库、平台安全模型和核心框架都是可以帮助您的领域。
我想,既然您在谈论内核编程,那么您也在寻找将新硬件与平台连接起来并使用您的框架扩展向应用程序公开该功能的方法。硬件基本上是作为标准 Linux 驱动程序添加的,所以让它在 Linux 下工作是一个很好的第一步。之后如何将其挂接到 Android 框架中取决于它是什么类型的硬件。您可以使用本机进程来控制它(比较当前平台中的摄像头服务或无线电守护程序),或者只是在使用您的框架扩展的应用程序中生成一个线程。对于不需要太多注意力的硬件,也可以选择使用 Android HAL 库将其插入。
我希望这能提供一些关于在哪里寻找的初步指示。官方邮件列表是平台级开发信息的主要来源。特别是Android porting 和Android platform。
【讨论】:
您还应该查看http://pdk.android.com。我最近才发现这个网站,它非常有用。我希望我早点知道。我不确定 Google 对更新网站的投入程度,因为正如 BMB 提到的,供应商的东西在 2.2 中被移动到了设备文件夹,但 PDK 网站没有任何变化来反映这一点。此外,有些链接不起作用,但我能够通过在 Google 中进行站点搜索找到所有页面。
【讨论】: