android源码编译

Android源代码为Galaxy nexus 编译

北城以北 提交于 2019-12-05 14:08:05
Android源代码为Galaxy nexus 编译 作者:JAROD 发布时间:JULY 29, 2012 分类: 原创技术 google发布了Android 4.1的代码,但是不包含蓝牙、wifi、显卡等驱动,google将这些驱动单独提供下载,并未集成到源码中,所以需要将其编译进rom中,步骤如下: 编译完成后会在android_souce/out/target/product/maguro/中生成一大堆img文件,这就是编译生成的刷机rom了 然后打开https://developers.google.com/android/nexus/drivers,下载Galaxy Nexus对应的4个文件并解压到源代码的目录,解压出来的4个文件是4个shell脚本,分别为extract-broadcom-maguro.sh,extract-imgtec-maguro.sh,extract-invensense-maguro.sh,extract-samsung-maguro.sh 分别执行这4个脚本,执行期间会要求输入“I ACCEPT” 重新执行make -j4进行编译,这次编译过程时间很短 完成上面的驱动集成后,可以把编译好的img拿到windows下面去刷机,也可以参照下面的方法在linux下刷: 输入 cd android_source/out/host/linux-x86

cocos2d-x引擎库binary版本制作(Windows环境)

ぃ、小莉子 提交于 2019-12-04 14:40:51
大家可能觉得很奇怪,cocos2d-x引擎库的编译不是很简单嘛?不就是下载源码包,解压并打开vs工程,分别对debug跟release两个版本按一下编译就好了吗?对的,编译就这样就完成了。不过,我发现这样编译出来的库好像“移植性”不是很好,不能直接拷贝到另外一台电脑直接使用。于是,我尝试将这个编译好的引擎库变得更加的有“移植性”,并分享这个过程。 (这里的“移植性”之所以用分号,是因为这不是说这个库不能移植到不同平台,而是说不能知道拷贝到其他电脑,然后直接使用。) ------------------------------------------------------------- 首先,说明一下我为什么要干这个引擎库拷贝的事情。是这样的:我本来有个台式机,已经配置好cocos2d-x环境了,然后最近买了手提。于是我想在手提上也装个cocos2d-x环境。然后我想,既然cocos2d-x是一个C++编写的函数库(引擎框架),理论上应该是可以直接拷贝到另外一台电脑使用的。于是我把台式的编译好的cocos2d-x库拷贝到了手提,结果编译一个HelloWorld都要整个cocos2d-x重新编译一次。所以,一台电脑编译,拷贝到另一台电脑使用的想法似乎有问题。 -------------------------------------------------------------

Android之NDK开发

杀马特。学长 韩版系。学妹 提交于 2019-12-04 01:22:30
一、NDK产生的背景   Android平台从诞生起,就已经支持C、C++开发。众所周知,Android的SDK基于Java实现,这意味着基于 Android SDK进行开发的第三方应用都必须使用Java语言。但这并不等同于“第三方应用只能使用Java”。在Android SDK首次发布 时,Google就宣称其虚拟机Dalvik支持JNI编程方式,也就是第三方应用完全可以通过JNI调用自己的C动态库,即在Android平台 上,“Java+C”的编程方式是一直都可以实现的。   不过,Google也表示,使用原生SDK编程相比Dalvik虚拟机也有一些劣势,Android SDK文档里,找不到任何JNI方面的帮 助。即使第三方应用开发者使用JNI完成了自己的C动态链接库(so)开发,但是so如何和应用程序一起打包成apk并发布?这里面也存在技术障碍。比如 程序更加复杂,兼容性难以保障,无法访问Framework API,Debug难度更大等。开发者需要自行斟酌使用。   于是NDK就应运而生了。NDK全称是Native Development Kit。   NDK的发布,使“Java+C”的开发方式终于转正,成为官方支持的开发方式。NDK将是Android平台支持C开发的开端。 二、为什么使用NDK   1.代码的保护。由于apk的java层代码很容易被反编译,而C/C+

使用ndk-build编译 android调用的so库

穿精又带淫゛_ 提交于 2019-12-03 21:42:24
前沿 编译so的方法有两种方法第一种就是编写原生的makefile文件利用gcc进行编译,这里我讲解的是另外一种。采用NDK提供的ndk-build编译。 简介 使用ndk编译的时候需要介绍它的脚本文件,Android.mk和Application.mk,但是Application.mk是可选的,用来描述原生程序用到的一些特性,如原生程序支持的ARM指令集。 Android.mk是工程的编译脚本,描述了编译原生程序所需要的选择项、头文件、源文件以及依赖库等。 实例 首先需要下载DNK,这个就不用多说了,我直接来说步骤吧。程序员一般都会对Hello,world感到亲切,我们就从hello,word开始。利用eclipse新建一个项目我取了新建了一个andoridNDKTest这个项目,先看看项目目录吧。 这里注意到上面的多了一个jni目录,这个目录就是java通过jni调用的代码放的地方,里面放了三个文件,我们还是首先来讲一下hello-jni.c这个文件,我们来看看代码。 #include <string.h> #include <jni.h> jstring Java_com_example_ndktest_MainActivity_stringFromJNI( JNIEnv* env, jobject thiz ) { return (*env)->NewStringUTF

编译andorid kernel for moudle (android LKM)的配置

半世苍凉 提交于 2019-12-03 10:17:14
具体编译android source和android kernle 的过程参考: http://my.oschina.net/u/561492/blog/89965 1、特别要注意,如果要编写LKM for android ,一点要在编译内核源码之前对其加一步配置: Make clean make goldfish_armv7_defconfig (android4.0以下执行 $make goldfish_defconfig) make menuconfig(这一步使得编译的android kernel支持module) 在Android的Linux内核的源代码,目录下,运行 $ make menuconfig 出现如下的图片: 另外,按向左键选择,卸载模块相关 然后再执行命令: make 来源: oschina 链接: https://my.oschina.net/u/561492/blog/89139

单独编译simpleCamera APK

巧了我就是萌 提交于 2019-12-03 07:23:54
单独编译simpleCamera APK 本期博主给大家分享如何单独编译simple Camera APK,还是老样子,直接上步骤: 进入android_m6.0.1_sailfish/目录,执行命令: # source build/envsetup.sh 执行命令:# lunch # 11 4. 执行编译命令:# make -j8 2>&1 | tee build-log.txt (编译源码, j8 数字根据电脑配置填,提升编译速度的。) 喜欢关注我哦! 4. 执行命令:# mmm ./packages/apps/fsl_imx_demo/simpleCamera (单独编译具体目录中的simpleCamera) 5. 执行编译命令:# make snod (将上一步编译出来的apk包含进镜像文件) 至此摄像头应用编译完成,编译成功生成的烧录文件在out/target/product/sabresd_6dq/目录下,分别是boot-sail-imx6q.img recovery-sail-imx6q.img u-boot-imx6q1.imx u-boot-imx6q2.imx boot-sail-imx6dl.img recovery-sail-imx6dl.img u-boot-imx6q1.imx u-boot-imx6q2.imx system.img。 来源:

RTL8723bs WiFi编译

柔情痞子 提交于 2019-12-03 04:36:36
RTL8723bs WiFi编译 RTL8723bs WiFi编译首先要进行编译驱动,那么怎么进行编译驱动呢?主要通过以下几部分进行: 如果您之前编译过源代码,则根据以下步骤编译驱动即可,否则,请先参考源代码编译部分。 1. 在源代码根目录中执行 make modules 。 2. 执行成功之后进入驱动目录:kernel_imx/drivers/net/wireless/rtl8723bs ,执行 make 。执行成功后就可以在驱动目录下看到 wlan.ko文件。 若 make执行失败,请修改/android_m6.0.1_sailfish/kernel_imx/drivers/net/wireless/rtl8723bs/的Makefile文件中的CROSS_COMPILE和KSRC,修改成你安卓源码所对应的目录。如下图所示的位置: 3. 将 wlan.ko复制到out/target/product/sabresd_6dq/system/lib/modules/目录下,如果没有modules文件夹手动创建。 4. 执行make snod ,重新生成系统镜像。 这样就好了。希望可以帮到你,喜欢多多关注www.dianyu.com.cn 来源: https://www.cnblogs.com/dianyu/p/11777693.html

Gradle与Makefile构建工具的对比

匿名 (未验证) 提交于 2019-12-03 00:36:02
随着Android Studio的普及,越来越多的Android开发者也要开始了解和学习Gradle这款强大的代码构建工具了。我们在学习和了解一项新事物的时候,最快速的方法往往是与已知的事物进行比较,对于熟悉Makefile编译机制的Linux程序员而言,认识和掌握Gradle最好的方法莫过于比较它们之间的区别了,本文不准备详细介绍Gradle的方方面面,而是希望通过与Makefile的对比帮助Gradle初学者更快速地理解Gradle的基础和原理。 Makefile是一种管理和编译 Linux C/C++ 项目的工具,而Gradle也是一种代码构建工具,只不过是针对Java语言的,它同样可以通过一些配置文件和脚本来完成代码的依赖、第三方库的引入、编译的自动化配置等功能。 首先说说Makefile,它是由一个个"规则"组成,每个"规则"都是由"目标"、"依赖"、"命令"构成, 一个最简单的Makefile如下所示: 1 2 3 4 5 6 7 8 9 .PHONY: clean all: hello hello: hello.c gcc -o hello hello.c clean: rm hello 这里有三个"目标",分别是: "all","hello","clean" 当执行"make"命令时,编译器会默认查找目标"all" ,如果没有"all

Lua内存泄露检查和性能检测工具

匿名 (未验证) 提交于 2019-12-03 00:32:02
1. ToLua#的编译 之前的博客有提到过,我们使用的是ToLua#作为Unity引擎和Lua之间的桥接工具,本文记录的集成工具都是在C层进行的,因此要编译自己的ToLua#。 ToLua#的源码地址是: https://github.com/topameng/tolua_runtime ,编译流程可以参考其wiki文档,不过这部分的过程记录的不太详细,本部分基于wiki文档和自己在Windows以及Mac OS上的编译过程进行一些整理,记录整个过程和遇到的问题如下: 安装msys2-x86_64-20161025.exe工具,Web地址: http://msys2.github.io/ 。 为msys2安装gcc,由于原始的下载地址我本地下载非常慢而且出错,建议添加国内的镜像地址: 编辑 /etc/pacman.d/mirrorlist.mingw32 ,在文件开头添加:Server = http://mirrors.ustc.edu.cn/msys2/REPOS/MINGW/i686 编辑 /etc/pacman.d/mirrorlist.mingw64 ,在文件开头添加: Server = http://mirrors.ustc.edu.cn/msys2/REPOS/MINGW/x86_64 编辑 /etc/pacman.d/mirrorlist.msys ,在文件开头添加

Android编译自己的程序到/system/bin

匿名 (未验证) 提交于 2019-12-03 00:30:01
有时候我们想创建一个程序,放在系统中,供其他APP执行。我们知道,在生成system.img的时候,编译系统会将out/target/product/[product]/system/bin目录打包进去。所以,我们想办法让编译系统在编译的过程中,把我们的程序编译了,并把编译生成的二进制文件自动放到out/target/product/[product]/system/bin。 假如我们要创建一个mytest的程序 1.在external目录下创建名为mytest的文件夹,这个文件夹用于存放我们的程序代码和makefile文件以及这个程序的依赖库。 2.创建我们的程序代码和makefile文件,这里主要看看makefile文件怎么写,例子如下: LOCAL_PATH := $(call my-dir) common_cflags := \ -std=c99 \ -Os \ -Wall \ -Wextra \ -Wno-char-subscripts \ -Wno-sign-compare \ -Wno-string-plus-int \ -Wno-uninitialized \ -Wno-unused-parameter \ -funsigned-char \ -ffunction-sections -fdata-sections \ -fno-asynchronous-unwind