转载自http://mobile.51cto.com/android-229213_1.htm
通过PhoneGap生成基于Android的原型程序
1 进入PhoneGap-Android目录,并进入MS-DOS方式,在命令行下,按如下格式执行该命令:
上述参数说明如下:
其中android_sdk_path指定了android sdk的安装位置,比如:
d:/androidsdk,注意这里不要写成“\”,应该是“/”作为分隔符。
Name:要生成的android应用的名字。
Package_name:生成的android应用中源代码中的包名,注意必须至少有一层的包关系,即com.XXXX的形式。
WWW:这里指应用中存放HTML,Javascipt,CSS的位置目录名称。
PATH:这里指通过PhoneGap生成的项目原型工程的目录位置,注意的是,该目录位置不能指定为eclipse的workspace工作空间内。
下面是一个例子:
运行上述命令后,会发现在D盘会生成一个HelloWolrdGap的工程目录,phonegap已经为我们生成了项目的框架了。
将工程导入到Eclipse中
如果安装了Android for eclipse的插件ADT后,我们可以将PhoneGap生成的工程导入到Eclipse中去。首先我们打开Eclipse,新建一个Android Project,如下图
其中输入Project name的名称为HelloGapAndroid,其中在Create project from existing source中选择上文中用PhoneGap生成的项目的目录。之后在Eclipse中则会看到如下结构的
可以看到其中assets下的www目录存放了工程中需要用到的HTML、Javascript和CSS文件。此外,还要确认工程的lib目录下面,存在phonegap.jar文件。
接下来我们试着运行下这个工程,会在模拟器中看到如下效果:
运行的结果是显示了PhoneGap中默认显示的index.html页面,其中演示了其中的一些功能,大家可以尝试去试验一下。
package com.diangxing;
public class TestArithmetic {
public static void main(String[] args) {
// TODO Auto-generated method stub
// getString("abcdef");
// getForString();
// int [] agars = {5,90,10,40,20,70,50};
// int numble = compute(agars);
// System.out.println(numble);
// printString();
long n = recurrence(10);
System.out.println(n);
}
/**
* 1、写一个方法,要求:输入一个字符串ABCDEFG,要求倒序输出GFEDCBA:
*/
private static void getString(String str){
if(str != null && !str.isEmpty()){
for(int i = str.length() - 1; i >= 0; i-- ){
System.out.print(str.charAt(i));
}
}
}
/**
有一个三位数,个位是c,十位是b,百位是a,
abc
+ cba
----------------
1333
如上运算,求满足这种的三位数有几种情况?
*/
private static void getForString(){
int b = 1;
for(int a=0 ; a<=9 ; a++){
for(int c=0; c<=9 ; c ++){
if(a+c == 13){
System.out.print("a="+a+" ");
System.out.print("b="+b+" ");
System.out.print("c="+c+" ;");
System.out.println();
}
}
}
}
/**
* 有一组数,求这组数的最大数和最小数的绝对值是多少?
*
*数组的排序
*/
private static int compute(int[] in){
int temp = 0;
for(int i = 0; i < in.length ; i ++){
for(int j = 0 ; j < in.length ; j ++){
if(in[i] > in[j]){
temp = in[i];
in[i] = in[j];
in[j] = temp;
}
}
}
for(int k = 0 ; k < in.length ; k ++){
System.out.print(in[k] + ",");
}
System.out.println();
return Math.abs(in[0] - in[in.length - 1]);
}
/**
* 4、打印九九乘方表:
*/
private static void printString(){
System.out.println("九九乘方表:");
for(int i = 1; i <= 9 ; i ++){
for(int j = 1 ; j <= i; j ++){
System.out.print(j+"*"+i+"="+i*j+" ");
}
System.out.println();
}
}
/**
* 利用递归求一个数的阶乘?
*/
private static long recurrence(int n){
if(n == 1){
return 1;
}else{
return n * recurrence(n -1);
}
}
}
多维数组和对象数组一样处理,例如二维数组里的每个元素还是一个数组 用jArray表示,直到数组变为一维的,且里面元素为基本类型,去获得一维数组指针。给大家提供个例子。已经测试通过。
Java_cn_wzl_FiveChessView_checkWin( JNIEnv* env,jobject thiz,jobjectArray qizidata)
{
jint i,j;
int size = (*env)->GetArrayLength(env, qizidata);//获得行数
jarray myarray = ((*env)->GetObjectArrayElement(env, qizidata, 0));
int col =(*env)->GetArrayLength(env, myarray); //获得列数
jint qizi[size][col];
for (i = 0; i < size; i++){
myarray = ((*env)->GetObjectArrayElement(env, qizidata, i));
jint *coldata = (*env)->GetIntArrayElements(env, (jintArray)myarray, 0 );
for (j=0; j<col; j++) {
qizi [i] [j] = coldata[j];
}
}
}