【问题标题】:Why build android source?为什么要构建android源码?
【发布时间】:2012-06-21 13:03:12
【问题描述】:

我想知道是否需要为我正在开发的应用程序构建 Android 源代码。我需要开发一个应用程序来控制使用内核中的 I2C 驱动程序的设备。我可以简单地使用 SDK 和 NDK 做到这一点吗?我应该改用我的 Android 版本中的 SDK 和 NDK 吗?

我注意到 SDK 没有工具目录,当我尝试运行 ndk/ndk-build 时出现以下错误。

/ndk/toolchains/arm-linux-androideabi-4.4.3/prebuilt/linux-x86/bin/arm-linux-androideabi-gcc:找不到命令
/ndk/toolchains/arm-linux-androideabi-4.4.3/prebuilt/linux-x86/bin/arm-linux-androideabi-g++:找不到命令。

当然有两个特定的 Android 网站:source.android.comdeveloper.android.com,我了解其中提供的指南。似乎没有任何建议可以建议如何处理您的构建或为什么要构建源代码而不是使用下载的 SDK。

【问题讨论】:

    标签: android sdk build android-ndk


    【解决方案1】:

    如果需要添加对现有构建中不支持的内容的支持,以及通过修改预构建文件不容易支持的内容,可以重建 android(不同地表示内核、用户空间、运行时系统、系统应用程序和工具链)没有重建它们。

    i2c 支持/配置很可能是内核的一个特性以及运行时配置的某些方面,例如权限、模块加载等。您很可能能够在有根设备上实现这一点,而无需重新构建 android 运行时/userland 只需修改一些系统文件,尽管您最终可能不得不编译一个新内核或至少一个内核模块。

    添加 i2c 支持不太可能需要更改 sdk 或 ndk,除非您想尝试为您的任务创建一个正式的 API,作为 android 本身的集成部分。最有可能的是,您最终添加到 android 安装中的任何功能都可以使用反射或应用提供的存根组件和常量从应用中引用,而无需更改构建系统对所支持内容的想法。

    【讨论】:

    • 非常感谢您提供的有用信息。为了让我从用户空间使用 i2c,我需要安装 i2c-tools,它目前在我的 android 版本中不可用。我可以通过修改一些系统文件来做到这一点还是需要重建系统?
    • 另外,如果我要使用在我的 android 版本中构建的 SDK 和 NDK,而不是下载的版本,我将如何处理?如上所述,我无法将 eclipse 指向 SDK 文件夹,因为没有工具文件夹,并且在尝试运行 NDK 时出现错误。
    【解决方案2】:

    你是用cygwin还是linux os来编译你的驱动?

    如果您使用的是 cygwin:必须安装 c/c++ 编译器: 打开cygwin setup.exe 检查开发分支下的所有组件,然后单击下一步...。 但总开发工具占用大约 4 GB。如果您不需要它们,请搜索 web fr neccessary。 (您只需要大约 10 个组件)

    【讨论】:

      猜你喜欢
      • 2013-08-10
      • 2021-10-06
      • 2014-05-26
      • 2021-07-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多