精华内容
下载资源
问答
  • Android编译

    千次阅读 2010-07-26 13:13:00
     编译ADT的时候会删除已编译的sdk和一些库文件,需要重新mm Android根目录 6.编译SDK和ADT时  会先删除一些已经编译的库文件。若中途出错,则无法恢复,需要再次进根目录编译Android  编完SDK/ADT后,需要...

    1.找不到gnu/stubs-64.h

        host C: libclearsilver-jni <= external/clearsilver/java-jni/j_neo_util.c
    In file included from /usr/include/features.h:378,
    from /usr/include/string.h:26,
    from external/clearsilver/java-jni/j_neo_util.c:1:
    /usr/include/gnu/stubs.h:9:27: error: gnu/stubs-64.h: No such file or directory
    make: *** [out/host/linux-x86/obj/SHARED_LIBRARIES/libclearsilver-jni_intermediates/j_neo_util.o] Error 1

    看jdk版本 java -version ,确保是jdk1.5,而jdk1.6要求64位平台
    参考详细说明

    2.使用gcc-4.3和g++-4.3

    3.添加环境变量

          export JAVA_HOME=/usr/lib/jvm/java-5-sun  

          export PATH=$PATH:$JAVA_HOME/bin  

          export CLASSPATH=$JAVA_HOME/lib

          export ANDROID_JAVA_HOME=$JAVA_HOME  

          export PATH=$PATH:~/mydroid/out/host/linux-x86/bin  

          export ANDROID_PRODUCT_OUT=~/mydroid/out/target/product/generic

     

          export PATH=$PATH::~/mydroid/prebuilt/linux-x86/toolchain/arm-eabi-4.4.3/bin   (arm-eabi-objdump)

    4.编译android sdk 时:不要直接make sdk

        $cd ~/mydroid

        $. build/envsetup.sh

        $make PRODUCT-sdk-sdk

        windows版sdk:

        $make -j4 PRODUCT-sdk-win_sdk

         参考development/build/tools/windows_sdk.mk

    5.编译ADT       

        $export ECLIPSE_HOME=~/tuhuolong/eclipse_ganymede_jee

        $cd ~/mydroid

        $. build/envsetup.sh

        $development/tools/eclipse/scripts/build_server.sh ~/tuhuolong/ADT

    (Honeycomb)$sdk/eclipse/scripts/build_server.sh ~/tuhuolong/ADT 

           参考马永强博客(1)Android

                                 (2)SDK,ADT   

     

            编译ADT的时候会删除已编译的sdk和一些库文件,需要重新mm Android根目录

    6.编译SDK和ADT时

          会先删除一些已经编译的库文件。若中途出错,则无法恢复,需要再次进根目录编译Android

          编完SDK/ADT后,需要重新编译mm Android根目录

    7.编译ADT时

        java.lang.IllegalStateException: Unable to acquire application service
    eclipse_ganymede_jee的设置有问题

    8.make update-api

        make update-api   
    如果你在Android源码中添加了自定义的包、类、方法或者你修改了Android源码中标识为@hide的方法、类,你需要这些内容对
    Application可见并且需要编译进SDK的Document中的话,这个命令是必须的(其实还有另外一种手工修改的方式替代这个命令的,呵呵)

    9.make snod

        make snod
    产生一个新的系统映像system.img

    展开全文
  • webrtc android 编译

    千次阅读 2018-07-25 18:18:12
    折腾了好几天,终于把webrtc android编译成功了,不禁感慨:webrtc android编译实在太难了,但是编译成功之后,感觉实在又太简单了,简单是因为webrtc所有编译工作已经全部都写在了脚本里了,你甚至不不需要去管什么...

    折腾了好几天,终于把webrtc android编译成功了,不禁感慨:webrtc android编译实在太难了,但是编译成功之后,感觉实在又太简单了,简单是因为webrtc所有编译工作已经全部都写在了脚本里了,你甚至不不需要去管什么JDK,Android sdk,ndk环境配置等等,因为所有这一切只需要执行一个脚步命令,统统搞定,简直就是良心之作啊 ,哈哈。 但是如果你完全按照官方文档来,还是会碰到各种奇葩问题,有些问题甚至连万能的google也找不到答案,为什么会出现这种状况呢?那是因为很多基础的软件安装,代理等等并没有提到,人家可能认为这本来是很简单的事情,根本没必要教你,但是如果你的系统缺少了一两个软件或者配置,后面会引出一连串问题,这就是难点所在。下面简单介绍下webrtc android编译步骤:

        一 环境

         先说一下我编译的环境:mac os +虚拟机VirtuaBox+ubuntu 14.04 LTS  android的编译必须要在linux下,新装的ubuntu系统默认是不能全屏显示的,需要安装vbox增强工具VBoxGuestAdditions,这个工具还可以实现mac与ubuntu的文件共享,具体可以参考:http://www.2cto.com/os/201308/233609.html

       二 基础软件安装

        1 源更新,在ubuntu终端中执行:apt-get update,确保这一步都成功了再往下走

        2 安装基础软件, 执行:sudo apt-get install git apache2 curl libcurl3 libcurl3-dev php5-curl

        三 下载webrtc android 源码

         1 设置代理,这一步不做过多介绍,需要注意的是需要在终端设置代理,这一步也是比较坑的一步,大家可以搜一下怎么设置

         2 下载 depot_tools:git clone https://chromium.googlesource.com/chromium/tools/depot_tools.git 注意:这一步是在当前user目录下执行的

    3 配置depot_tools环境变量:export PATH=`pwd`/depot_tools:"$PATH", 配置成功可以执行gclient命令,看看是否成功

    4 下载源码:先创建一个目录比如webrtc,用于存放源码:mkdir webrtc 切换到webrtc目录下:cd webrtc 现在当前目录到了webrtc下,然后执行:

    fetch --nohooks webrtc_android

    gclient sync

    下载是一个漫长的时间,中间可能会因为网络问题中断,中断后继续执行这个进行下载,下载过程中可能提示什么更新google play什么的鬼玩意,执行更新即可,我下载过程 中还提示了什么代理boto异常,最后折腾了好久才解决

    四 编译源码

    注意:先要安装jdk8的版本

    1 安装编译需要的软件及配置 :src/build/install-build-deps-android.sh

    2 进入到src目录下 执行:. build/android/envsetup.sh 这一步是配置环境变量(注意前面那个 .)

    3 开始编译,编译没什么好说的,完全按照webrtc官网来(如果出现失败的情况,可能代码没有同步完全,还得继续执行gclient sync)

    https://www.linuxidc.com/Linux/2014-10/108084.htm还要参考这个网址的过程

     

      gn gen out/Debug --args='target_os="android" target_cpu="arm"'
    
      ninja -C out/Debug

     

    在编译的时候,如果出现ninja: error: '../../third_party/android_tools/sdk/extras/google/m2repository/com/google/android/gms/play-services-base/10.2.0/play-services-base-10.2.0.aar', needed by 'obj/third_party/android_tools/google_play_services_base_java__unpack_aar.inputdeps.stamp', missing and no known rule to make it

    还需要重新执行

    $ cd third_party/android_tools

    $ git log -n 1

    commit b77dc4487150b1194894c2173609d91ba2ecbbf7

    You could also run 'git status' to see if the directory is in the correct state. If there is a lot of weird stuff going on there, you could clean that whole directory, and in third_party/android_tools then run:

    $ git clean -xfd

    If the commit in that repository is wrong you could try running these commands:

    $ gclient sync

    $ build/install-build-deps-android.sh

    $ gclient runhooks

    最后再下载gooleplay软件的时候,选择y。

     

     

     

     

     

     

    This is the first time I try to compile chromium . I followed official guideline and check it out successfully yesterday. But I ran into an error when I tried to build chromium for android :

     

     ninja -C out/Default chrome_public_apk

    ninja: Entering directory `out/Default'

    ninja: error: '../../third_party/android_tools/sdk/extras/google/m2repository/com/google/android/gms/play-services-base/10.2.0/play-services-base-10.2.0.aar', needed by 'obj/third_party/android_tools/google_play_services_base_java__unpack_aar.inputdeps.stamp', missing and no known rule to make it

    Should I build sth. else first ?

     

     

    Regards !

     

     

    Xiaoming Ding

    Tommy Nyquist

     

    17/9/11

    其他收件人: zhao...@gmail.com

    将帖子翻译为中文  

     

    Could there be that something has happened to the third_party/android_tools part of your checkout?

    According to the DEPS file, that directory should be at the commit aadb2fed04af8606545b0afe4e3060bc1a15fad7.

     

    If you do:

    $ cd third_party/android_tools

    $ git log -n 1

    commit b77dc4487150b1194894c2173609d91ba2ecbbf7

     

    You could also run 'git status' to see if the directory is in the correct state. If there is a lot of weird stuff going on there, you could clean that whole directory, and in third_party/android_tools then run:

    $ git clean -xfd

     

    If the commit in that repository is wrong you could try running these commands:

    $ gclient sync

    $ build/install-build-deps-android.sh

    $ gclient runhooks

     

    耐心等待编译完成,只要前几部没什么问题,这一步还是很顺利的,成功后可以在out/Debug 下找到编译好的apk demo文件及so,jar包等等

     

    总结:编译成功后,你会发现原来如此简单,但又不简单,其中下载源码这一步最难,其中原因相信你懂的

    展开全文
  • Android 编译时注解

    千次阅读 2019-01-18 18:22:23
    Android 编译时注解-初认识, 和 Android 编译时注解-提升后写的,因为原博主的例子是基于Android Studio 2,而我使用的是3,所以在实践的时候遇到了一些问题,现在我在这里做一点记录: 一、Annotation processors ...

    导读:本文是我学习wzgiceman的两篇博文:
    Android 编译时注解-初认识, 和 Android 编译时注解-提升后写的,因为原博主的例子是基于Android Studio 2,而我使用的是3,所以在实践的时候遇到了一些问题,现在我在这里做一点记录:

    一、

    问题: Annotation processors must be explicitly declared now. The following dependencies on the compile classpath are found to contain annotation processor. Please add them to the annotationProcessor configuration.
    解决方案:这是因为Android2.3之后不用apt了,具体原因和解决办法在这里


    二、

    问题:java.lang.NoClassDefFoundError: com/squareup/javapoet/MethodSpec
    解决方案:把app模块的implementation project(’:processors’) 改为 annotationProcessor
    project(’:processors’)


    三、

    问题:Gradle may disable incremental compilation as the following annotation processors are not incremental
    解决方案:这是我把AS升级之后出现的问题,原来的注解处理器失效,没有生成相应的java文件,然后我看Build信息里面有这个提示,就猜是不是gradle的问题,然后把gradle的版本回退果然解决了问题,后来我上stackoverflow查了一下,果然有人也遇到了这种情况:Stackoverflow 问题描述

    展开全文
  • Android编译时间优化

    千次阅读 2017-05-24 16:18:27
    Android编译时间优化

    编译Task提速

    Gradle的编译速度与项目设置相关,要优化Gradle的编译速度首页要知道编译的性能。

    Gradle 编译工具本身内置了很多性能分析工具:比如:profile

     

    通过在终端执行gradle build –profile 打开该功能。

    在mobile_android 项目中执行该命令,执行完毕,在项目根目录下的build文件中



    查看此报告:



    这是完整编译的耗时:一般我们关心的是task的耗时,task是开发者可以优化的脚本。

    点击task Execution:



    发现编译时的主要耗时在1、java编译成字节码,2、lint检查3、aapt资源文件编译上

    Lint耗时比较严重,而这个task在一般debug时用不上。暂时降其禁用掉。

    网上有很多禁用的方法,但是真正能够禁用的方法有两个:

    1、  通过Gradle的编译参数执行-x,执行以下命令:

    -x,--exclude-task 
    Gradle build –x lint

    其中-x 参数表示排除掉一个Task,通过这种方式可以禁止lint的执行。

    2、  另一种方式是在Gradle脚本中动态增加编译参数,脚本如下:

    project.gradle.startParameter.excludedTaskNames.add(‘lint’);

    两种方式的效果是一样的。

    除了lint检查,aapt检查也是一个耗时大户。在Debug版本中,可以使用下面的代码提高aapt 的速度。

    aaptOptions{
    	cruncherEnabled=false
     }
    

    极大的提高了aapt的速度(仅限Debug环境)。


    Gradle编译提速

    Gradle编译提速也是加快编译速度的有效方法。

    同时尽量减少本地库项目的依赖,多少用arr进行依赖。

    在gradle.properties文件中添加

    org.gradle.daemon=true
    org.gradle.configureondemand=true
    org.gradle.parallel=true
    

    表示开启多线程和多核支持。

    同时在build.Gradle中增加如下所示代码:

    dexOptions {
        incremental true
        javaMaxHeapSize "4g"
    }
    

    表示开启增量编译。Incremental true在最新的AS中默认已经开启,在旧的版本中默认是关闭的。


    在文件目录Android\Android Studio\bin中找到:

    studio.exe.vmoptions和studio64.exe.vmoptions文件


    Xms:初始heap内存。Xmx:最大heap内存。分别调成512m和2048m

    也可以在gradle中配置:

    org.gradle.jvmargs=-Xmx2048m -XX\:MaxPermSize\=512m -XX\:+HeapDumpOnOutOfMemoryError -Dfile.encoding\=UTF-8

    这样可以跟随项目设置环境参数

    InstallRun 使用:最新版本的installRun已经基本可以使用了,相对于前期版本修复了很多bug。InstallRun原理可以查看:寒江不钓的博客


    alibaba/freelineInstallRun功能类似更好用。参考地址 https://github.com/alibaba/freeline


    设置完毕之后重新编译:

    编译总耗时:




    Task部分:



    可以看到还是有明显提升!



    展开全文
  • Android编译环境配置

    千次阅读 2015-08-13 19:48:36
    Android编译环境配置网上关于Android编译环境配置的整理资料有不少,经整理亲测后,希望能给需要的亲们提供帮助。主要分为四步: 1.安装JDK(Java Standard Edition Development Kit) 2.安装Eclipse IDE for Java ...
  • Android编译系统中的Android.bp

    万次阅读 2018-05-14 16:34:19
    转自:http://note.qidong.name/2017/08/android-blueprint/Android编译系统中的Android.bp、Blueprint与Soong本文简单介绍Android Nougat(7.0)中引入的Android.bp,及其相关工具链。简介Android.bp,是用来替换...
  • Android 编译系统

    万次阅读 2013-08-29 09:33:25
    主要是没有一个完整的Android Build ...在进行讲述Android编译系统之前,应该先了解一下编译时所使用的Makefile,或者说复习下这方面的知识,这样才能更好的了解Android build system的原理。 1.1.Makefile 1.1.1.
  • 理解Android编译命令

    千次阅读 2016-05-03 11:35:38
    工欲善其事,必先利其器,对于想要深入学习Android源码,必须先掌握Android编译命令. 一、引言 关于Android Build系统,这个话题很早就打算整理下,迟迟没有下笔,决定跟大家分享下。先看下面几条指令,相信...
  • 此篇文章记录自己在搭建Android编译环境总结步骤,能够在新的服务器上快速搭建起Android的工作环境,进入工作状态。 二、过程步骤 提前准备好ubuntu-14.04.6-desktop-amd64.iso镜像、jdk-6u45-linux-x64.bin文件、...
  • Android编译系统简要介绍和学习计划

    万次阅读 多人点赞 2014-02-10 01:02:53
    在Android源码环境中,我们开发好一个模块后,再写一个Android.mk文件,...这一切都得益于Android编译系统,它为我们处理了各种依赖关系,以及提供各种有用工具。本文对Android编译系统进行简单介绍以及制定学习计划。
  • Android编译环境

    千次阅读 2010-07-04 02:01:00
    Android编译环境   Android编译环境本身比较复杂,且不像普通的编译环境:只有顶层目录下才有Makefile文件,而其他的每个component都使用统一标准的Android.mk. Android.mk文 件本身是比较简单的,不过...
  • Chromium Android编译指南

    千次阅读 2016-10-19 12:42:23
    作者 hanpfei 2016.08.03 12:26 先决条件 需要有一台装有Linux操作...目前还不支持在其它(Mac/Windows)平台上来为Android编译Chromium。 获取代码 首先需要下载并安装depot_tools包。在一个适当得目录下
  • Android编译系统分析系列文章: android编译系统分析一 Android编译系统-mm编译单个模块 android编译系统分析(三)-make android编译系统(四)-实战:新增一个产品 通过上一节“android编译系统(三)-...
  • Android 编译错误undefined symbol分析与解决方案 最近在Android Q上写一个bin文件时遇到编译报错的问题,具体报错如下: ld.lld: error: undefined symbol: android::RefBase::decStrong(void const*) const >&...
  • Android编译过程

    千次阅读 2018-08-21 18:36:13
    当前目录下编译执行,相当于在android目录下执行make 本文介绍Android编译过程及各种mk文件的导入 1.编译 a.编译步骤 清理 sh $ make clobber 初始化环境 sh $ source ./build/envetup.sh # 这个...
  • Android编译环境的搭建和编译

    万次阅读 2013-12-04 18:14:03
    Android编译环境的搭建和编译   第一部分,Android开发环境的硬件和软件平台介绍 1,开发服务器配置 作者的选用主机配置为i7-4770,16g ddr3-1600和500g HD。主机详情请查阅本博客下《Android开发服务器的...
  • Android 编译命令

    千次阅读 2017-06-15 09:25:13
    还有一份相关的ppt 资料日后分析整理了再补充,在Android源码根目录下,执行以下三步即可编译android: source build/envsetup.sh #这个脚本用来设置android编译环境; lunch #选择编译目标 make #编译android整个...
  • 第四章、Android编译系统与定制Android平台系统 4.1Android编译系统Android的源码由几十万个文件构成,这些文件之间有的相互依赖,有的又相互独立,它们按功能或类型又被放到不同目录下,对于这个大的一个工程,...
  • Android编译浅析和常用编译指令  我们日常工作中,每天都要编译代码,那么Android的编译原理是怎么样的呢?如何能提高编译的效率?以下我们简单的分析下。 一、Android的标准编译流程 Android标准编译分三步——...
  • android编译单个项目

    千次阅读 2009-12-18 16:45:00
    关于android编译系统可以参考一下这篇文章: Android Building System 分析。 android的编译系统也提供了编译单个项目的功能,这对于要修改android源代码的某个项目,或者在其中增加新项目来说十分重要。 编译单个...
  • android 编译C程序 在android下可执行

    千次阅读 2013-10-23 16:41:21
    Android编译环境本身比较复杂,且不像普通的编译环境:只有顶层目录下才有Makefile文件,而其他的每个component都使用统一标准Android.mk. Android.mk文件本身是比较简单的,不过它并不是我们熟悉的Makefile,而是...
  • Android编译系统参考手册

    万次阅读 2014-11-21 15:55:35
    Android编译系统参考手册 作者博客: http://www.cloudchou.com build/core/clear_vars.mk Clear out values of all variables used by rule templates 清除LOCAL变量,每个模块的Android.mk,一般会先包含该文件 ...
  • Android 编译系统分析

    千次阅读 2010-12-15 18:15:00
    介绍/mydroid/build/core/main.mk 文件是如何完成编译Android 系统的艰巨任务。看了一遍觉得不是太详细,但这篇文章确实是介绍Android 编译的好文章。
  • Android编译时主要瓶颈分析

    千次阅读 2012-02-17 11:19:23
    模拟2个用户同时登陆一个4核心处理器的电脑进行Android编译,编译选项make -j8,CPU配置如下: bhsong@SHA-IT-Lintester01:~/workspace/android/kernel$cat /proc/cpuinfo processor :0 vendor_id :GenuineIntel...
  • Android编译之MAKE

    万次阅读 2011-06-08 20:50:00
    Android编译之MAKE 目录 (一)make文件分类 (二)makefile文件 (三)Make命令 (四) build/core/config.mk (五) buildspec.mk (六) Android.mk说明 (七) MAKE调试技巧 (一)make文件...
  • Android 编译系统之Android.bp

    万次阅读 2017-08-17 17:31:16
    Android 7.0 (N)开始, Google开始逐步使用Android.bp代替原来的Android.mk进行编译. Google称之为soong, 具体可以参考: https://android.googlesource.com/platform/build/soong使用Android.bp编译时, 目前还...
  • Android编译优化:D8和R8

    千次阅读 2021-04-19 21:04:52
    如果日常做Android开发的你不关注Google针对编译优化的话做的努力的话,会对D8和R8这两个名词会比较陌生。最近要升级工程的Gradle版本,正好涉及到开启D8和R8的问题,笔者就简单整理解释下这两者的作用和概念。 一张...
  • android 编译生成的out目录结构剖析

    千次阅读 2016-08-05 19:36:35
    Android编译后的目录结构 Android编译完成后,将在根目录中生成一个out文件夹,所有生成的内容均放置在这个文件夹中。   out文件夹目录结构如下所示: out/ -- CaseCheck.txt -- casecheck.txt -- ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 87,826
精华内容 35,130
关键字:

android编译