㈠ 如何件android中的命令移植到linux开发板上,想使用android中的一些命令,方便开发,比如logcat命令
本文用《Android深度探索(卷1):HAL与驱动开发》的随书源代码为例详细说明如何配置Android驱动开发和测试环境,并且如何使用源代码中的build.sh脚本文件在各种平台(UbuntuLinux、Android模拟器和S3C6410开发板)上编译、安装和测试Linux驱动。
建议读者使用UbuntuLinux12.04或更高版本实验本文的方法。
最好用root账号登录Linux。
一、安装交叉编译器
如果只是在UbuntuLinux上测试Linux驱动就不需要安装交叉编译器了,但要在Android模拟器或S3C6410开发板上进行测试,就必须安装交叉编译器。
首先下载交叉编译器(分卷压缩)
下载后解压,会发现有两个tgz文件,可以将这两个文件放到/root/compilers目录中,在Linux终端进入该目录,执行如下命令安装交叉编译器。
[plain]viewplain
#tarzxvfarm-linux-gcc-4.3.2.tgz-C/
#tarjxvfarm-none-linux-gnueabi-arm-2008q3-72-for-linux.tar.bz2-C/
二、编译和测试Linux内核
这里的Linux内核有两个,一个是goldfish,也就是Android模拟器使用的Linux内核、另外一个是S3C6410开发板使用的Linux内核(Linux2.6.36)。
读者首先要下载这两个Linux内核。
Android模拟器用的Linux内核源代码(分卷压缩)
用于S3C6410开发板的Linux内核源代码(分卷压缩)
分卷1
分卷2
由于随书代码中的word_count驱动已经在goldfish和linux2.6.36中分别建立了符号链接,以便在编译linux内核时同时也会编译word_count驱动,所以linux内核与源代码目录应与作者机器上的目录相同。
也就是两个linux内核目录与源代码目录如下:
linux内核目录
/root/kernel/goldfish
/root/kernel/linux_kernel_2.6.36
源代码目录
/root/drivers
注意/root/drivers目录下就直接是每一章的源代码了,例如/root/drivers/ch
06、/root/drivers/ch07
现在需要将/usr/local/arm/arm-none-linux-gnueabi/bin路径加到Linux的PATH环境变量中(不会加的上网查,这是Linux的基本功)
最后进入/root/compilers/goldfish目录,执行make命令编译linux内核,如果完全编译,大概20分钟左右。
编译完成后,会在/root/kernel/goldfish/arch/arm/boot目录中生成一个zImage文件,代码1.7MB,这就是用于Android模拟器的Linux内核文件。
三、编译Linux驱动
现在来编译随书光盘的驱动程序,这里以word_count驱动为例。
在Linux终端进入/root/drivers/ch06/word_count目录。
先别忙着编译。
首先要设置打开/root/drivers/common.sh文件,修改第一行UBUNTU_KERNEL_PATH变量值为自己机器上安装的UbuntuLinux内核路径,只要执行“ls/usr/src”命令即可查看当前机器可用的linux内核。
㈡ Linux命令行怎么编译Android代码
这个问题已经找到解决方案了,方法如下:
1.在Linux设置文件共享,将项目
共享,最好有个密码什么的。
2.在Linux上配置ssh server,用于
和编译安卓源码
3.Linux mac 通过
连接,原因是有线传输比无线的快很多,ping只是0.3左右ms,不影响使用。然后就可以mac编写代码,然后ssh
编译什么的,很方便,
㈢ 请问如何将自己在Linux系统里把开发的Android代码,部署到实体Android手机中运行
你需要先将代码编译成apk的应用程序,才能使用
可以先考到存储卡上,然后再安装就OK了!
㈣ 如何把linux下的软件的源代码直接编译到安卓平台
直接编译需要软件才可以反编译出来,直接把软件开发出来,封装成适合安卓平台的app,只能是这个思路。
㈤ 如何使用自己的makefile编译android ndk项目
其实android ndk上的编译说到底也就是交叉编译,只要配置好交叉编译工具链,使用原有的makefile也是可以编译出在android运行的c、c++程序的。以android-ndk-r4-crystax的ndk版本为例:编译器路径 android-ndk-r4-crystax/build/prebuilt/linux-x86/arm-eabi-4.4.0/bin名称前缀 arm-eabi-头文件目录 android-ndk-r4-crystax/build/platforms/android-3/arch-arm/usr/include库文件目录 android-ndk-r4-crystax/build/platforms/android-3/arch-arm/usr/lib你可以试一下上面的配置,如果编译链接都没有问题,可以adb push到android设备上运行看看,什么结果?有点崩溃,根本运行不起来,你也许想试试看android自带的ndk例子,确实是能够运行的,问题在哪儿呢?只是正确配置了编译器、头文件、库文件还不够,还需要配置编译、链接的参数,android例子中编译链接的参数是什么呢?你也许想深究一下android的makefile,可是不久你会发现那是更崩溃的事情,里面用了很多的make脚本函数。其实android的makefile是可以把执行的详细命令输出来的,只要make的时候加上V=1即可。可以看到确实带了很多参数编译参数:-fpic -mthumb-interwork -ffunction-sections -funwind-tables -fstack-protector -fno-short-enums -Wno-psabi -march=armv5te -mtune=xscale -msoft-float -mthumb -fomit-frame-pointer -fno-strict-aliasing -finline-limit=64 -Wa,--noexecstack -D__ARM_ARCH_5__ -D__ARM_ARCH_5T__ -D__ARM_ARCH_5E__ -D__ARM_ARCH_5TE__ -DANDROID 链接参数:-nostdlib -Bdynamic -Wl,-dynamic-linker,/system/bin/linker -Wl,--gc-sections -Wl,-z,noreloc -Wl,--no-undefined -Wl,-z,noexecstack -L$(PLATFORM_LIBRARY_DIRECTORYS) crtbegin_static.o crtend_android.o 这其中链接参数中的-Wl,-dynamic-linker,/system/bin/linker、crtbegin_static.o、crtend_android.o是最关键的,android使用了自己的进程加载器,并且自定义了c运行时的启动结束。难怪先前编译的进程启动不了。
㈥ 你的项目在Linux下怎么部署的列举一个
1、首先需要在linux服务器上配置java环境,如安装jdk+tomcat 2、配置完成jdk+tomcat环境后,需要把你的java项目复制到tomcat的webapps下 3、复制到tomcat的webapps后
㈦ 如何在linux系统的服务器上进行编译
方法/步骤
打开Myeclipse编辑器,在已经完成的web项目上面点击右键,选择export,然后选择导出成war包,将导出的war包放在桌面或者其他文件夹。
㈧ 如何将项目部署在linux服务器
1.首先用maven将项目打成war包,eclipse:选中项目右键-->run as-->maven package
2.空的Tomcat项目到linux服务器中,改端口
3.将打包成的war包到Tomcat中webapps下
4.在bin目录下启动startup.sh
5.操作命令进入bin目录: [root@localhost neco-tomcat-6.0.35-8094]# cd /opt/neco-tomcat-6.0.35-8094/bin/
对文件夹赋权限 :[root@localhost bin]# chmod 777 -R /opt/neco-tomcat-6.0.35-8094/
启动tomcat服务:[root@localhost bin]# ./startup.sh
关闭服务: [root@localhost bin]# ./shutdown.sh
查看日志信息:[root@localhost bin]# tail -222f /opt/neco-tomcat-6.0.35-8094/logs/catalina.out
㈨ 如何在Linux上部署Java应用程序
java不用做任何改动就可以部署到linux系统,java编译成*.
class文件
只需要
虚拟机
的支持,你只要在linux环境
下装
一个jdk就OK了,然后配置一下
环境变量
。
然后java的class文件或者打包好的*.jar文件考到linux目录下就可以用了.