- 浏览: 928830 次
- 性别:
- 来自: 北京
最新评论
-
itzhongyuan:
java Random类详解 -
david_je:
你好,我看到你在C里面回调JAVA里面的方法是在native里 ...
Android NDK开发(1)----- Java与C互相调用实例详解 -
fykyx521:
请求锁是在 oncreate 释放实在ondestroy?? ...
Android如何保持程序一直运行 -
aduo_vip:
不错,总结得好!
Android读取assets目录下的资源 -
f839903061:
给的网址很给力哦!
Android 4.0.1 源码下载,编译和运行
文章列表
1.找到javah命令所在的目录
我的为 /usr/bin/javah
2.打开eclipse
如图点击第二项
3.配置 如图
${project_loc}/src
-classpath ${project_loc}/bin/classes -d ${project_loc}/jni -jni ${java_type_name}
是根据
$PROJECT_DIRECTORY/src$ javah -classpath ../bin/classes bt.nativeclient.BtnativeActivity
1,下载:
wget http://www.libsdl.org/tmp/SDL-2.0.tar.gz
2, 解压:
tar -xvf SDL-2.0.tar.gz
3,
cd SDL-2.0.0-6609/android-project/jni && mkdir SDL
4,
将$SDL-2.0.0-7420根目录下的 include src 和 Android.mk文件拷贝到
$SDL-2.0.0-7420/android-project/jni/SDL 目录下
cp ../../src/ SDL/ -R && cp ../.. ...
1 库的分类
根据链接时期的不同,库又有静态库和动态库之分。
静态库是在链接阶段被链接的(好像是废话,但事实就是这样),所以生成的可执行文件就不受库的影响了,即使库被删除了,程序依然可以成功运行。
有别于静态库,动态库的链接是在程序执行的时候被链接的。所以,即使程序编译完,库仍须保留在系统上,以供程序运行时调用。(TODO:链接动态库时链接阶段到底做了什么)
2 静态库和动态库的比较
链接静态库其实从某种意义上来说也是一种粘贴复制,只不过它操作的对象是目标代码而不是源码而已。因为静态库被链接后库就直接嵌入可执行文件中了,这样就带来了两个问题。
首先就是系统空间被浪费了。这是显而易见的,想象一下, ...
./configure --enable-shared --prefix=/usr/local/ffmpeg
1.建立工程TestFFmpeg
2.编写c文件
mian.c
#include <stdio.h>
#include <libavcodec/avcodec.h>
int main(int argc, const char * argv[])
{
// insert code here...
printf("Hello, World!\n");
printf("%d",avcodec_version());
return 0;
}
3. 添加lib文件:右键点击工程名,选择“ ...
解决方法为有两个
第一个方法:
上下载对应版本的.deb文件,并放在同一个目录下。
进入这个目录,输入命令
sudo dpkg -i *
安装完gcc-4.1后,需要为gcc-4.1建立链接:
sudo mv /usr/bin/gcc /usr/bin/gcc_mybackup
sudo ln -s /usr/bin/gcc-4.1 /usr/bin/gcc
(如果需要使用gcc-4.6编译其他程序,可以直接调用gcc-4.6或者通过以下命令恢复gcc-4.6的软链接 sudo mv /usr/bin/gcc_mybackup /usr/bin/gcc)
验证gcc-4.1软链接是否建立成功
...
ZIP
zip可能是目前使用得最多的文档压缩格式。它最大的优点就是在不同的操作系统平台,比如Linux, Windows以及Mac OS,上使用。缺点就是支持的压缩率不是很高,而tar.gz和tar.gz2在压缩率方面做得非常好。闲话少说,我们步入正题 ...
ubuntu软链接和硬链接
- 博客分类:
- linux
在Linux系统中,内核为每一个新创建的文件分配一个Inode(索引结点),每个文件都有一个惟一的inode号。文件属性保存在索引结点里,在访问文件时,索引结点被复制到内存在,从而实现文件的快速访问。
链接是一种在共享文件和访 ...
Ubuntu APT常用命令参数
- 博客分类:
- linux
Ubuntu APT常用命令参数
具体介绍Ubuntu APT命令参数,让大家了解Ubuntu APT命令参数使用,希望对大家有用。Ubuntu 是一个完全以 Linux 为基础的操作系统, 可自由的获得,并提供社区和专业的支持。
常用的Ubuntu APT命令参数
apt-cache search package 搜索包
apt-cache show package 获取包的相关信息,如说明、大小、版本等
sudo apt-get install package 安装包
sudo apt-get install package - - reinstall 重新安装 ...
/***
*
* asm, auto, bool, break, case, catch, char, class, const, const_cast, continue,
* default, delete, do, double, dynamic_cast, else, enum, explicit, extern, false, float,
* for, friend, goto, if, inline, int, long, mutable, namespace, new, operator, private,
* protected, public, regis ...
#include<stream.h>
using namespace std;
//按引用传递提高效率
/**
*按值将对象传递给函数 与 按值从函数返回一个对象时,都将创建该对象的副本。 创建这些副本时,都要调用一个特殊的构造函数:复制构造函数
*函数返回时 临时对象将被销毁,将调用对象的析构函数。
* */
class SimpleCat{
public:
SimpleCat();
SimpleCat(SimpleCat&); //复制构造函数
~SimpleCat();
};
SimpleCat::SimpleC ...
#include<iostream.h>
using namespace std;
int & getInt();
int main(){
int & rInt = getInt();
cout<<"rInt is: "<<rInt<<endl;
return 0;
}
int & getInt(){
int localVar = 25;
return localVar; // localVar为局部变量 在函数返回时localVar变量将被销毁,所以返回的 ...
#include<iostream.h>
using namespace std;
int main(){
const int ArrayLenght = 5; // 必须定义成 const类型 不然会报错
int arr[ArrayLenght] = {0,10,20,30,40};
int *pArray = arr;
for(int i=0; i<ArrayLenght; i++){
cout <<"Element["<<i<<"] is:" ...
#include<iostream.h>
using namespace std;
//指针: 存储内存地址的变量
//取得变量的内存地址 在变量名前加&符号
int main(){
unsigned short shortVar = 15;
unsigned long longVar = 65535;
long sVar = -65535;
cout<<"shortVar's address is: "<<&shortVar<<endl;
cout<<" ...
#include<iostream.h>
using namespace std;
/**
* Cat *cat = new Cat; delete cat;
* 在释放内存之前将调用对象的析构函数,
*
* 迷途指针: delete释放指针,没有将其设置为空值
* */
class SimpleCat{
public:
SimpleCat();
~SimpleCat();
private:
int age;
}; //class 类终结要以 ; 结尾
SimpleCat::SimpleCat(){
...