/************************************************************************/
/* 密码校验 */
/* C++11下没有问题,但是C语言是有问题的 */
/* 错误案例:^[a-zA-Z0-9~!@#$%^&*()_+`\\-={}\\[\\]:\";'<>?,.\\/]{6,20}$正确案例:^[]a-zA-Z0-9~!@#$%^&*()_+`={}:;'<>?,./\"\[-]{6,20}$解答:最恶心的匹配有三个字符 []-- 如果...
android的JNI代码中可以调用C++的类,但是不能直接调用,要加上一个类似于接口的java类,这个类内部调用C++的类。实际上和接口类直接调用C++中的函数差不多,只是稍微复杂了一点。 1. 写一个简单的类(一直都是用VS自动生成的类,很少自己写一个类,因而此处也是用VS生成类,然后复制到Eclipse工程的jni目录下。)该类包含4个函数:a带参数的构造函数,用于初始化类中的变量。b析构函数,用于释放类中的指针(数组)c求和函数calcS...
##C向C++改造
1. 把c文件后缀名换成cpp
2. Android.mk文件中的hello.c也要换成hello.cpp
3. c++的使用的环境变量结构体中,访问了c使用的结构体的函数指针,函数名全部都是一样的,只是参数去掉了结构体指针
4. 访问函数指针时,把env前面的*号去掉,因为此时env已经是一级指针
5. clean,清除之前编译的残留文件
6. 把声明函数的h文件放入jni文件夹中,include该h文件jni是java和C的中间人。其余都一样,hello.cpp#include <jni.h>...
距离2012年11月2日下午2:05:31 已经过去158751270这么多秒了,不小心暴露了我的当前时间。java代码贴出来。 privatestaticlong gettimelong() {long result = new Date().getTime() - new Date("2012/11/02 14:05:31").getTime();return result / 1000;}接下来是介绍北京地体换乘算法的最优解,比如程序随便运行一下是这样的result:程序开始执行时间:20171113101010 82五道口------------->阜成门:最短路程为:五道口-知春路-西...
1.jni是什么2.jni应用情景3.java 调用C++过程解析(附例子)4.C++调用java 过程解析(附例子)5.java,c++,jni数据类型对照6.常用jni函数解析http://blog.csdn.net/skywalker256/article/details/4677644 原文:http://www.cnblogs.com/LNOMP/p/3952368.html
最近一直都在x86设备上进行游戏开发,就c++层和Android java层倒没有什么要特别注意的(除了需要注意一下修改Application.mk指定平台外),在c++崩溃的时候,很多时候看不到堆栈,只能看到一个信号,所以由于工作需要,使用google breakpad来进行异常捕捉。谷歌被墙很麻烦,索性就把breakpad打包放这里供需要的童鞋下载,google breakpad下载。1.下载google breakpad下载地址是 http://code.google.com/p/google-breakpad/source/...
看原文请移步:Update: Android.mk 中的 LOCAL_SRC_FILES, LOCAL_C_INCLUDES我在先前的两篇post 编写Android.mk中的LOCAL_SRC_FILES的终极技巧编写 android.mk 中 LOCAL_C_INCLUDES 的技巧中提到了一些编译android.mk文件的技巧, 由于都涉及到了shell命令, 导致不能完全在windows下工作, 下面我使用纯净的makefile语法重新编写了脚本# 配置自己的源文件目录和源文件后缀名
MY_FILES_PATH := $(LOCAL_PATH) $(...
一直想写一份技术文档,但由于自感能力有限而无从下笔,最近做了个关于Android平台下实现与C语言的通讯来操作蓝牙模块的项目,中间碰到了许多问题,也在网上查了许多资料,在完成主要功能后,也有一些人在网上问我一些问题,这里写下这篇文档算是一个阶段性的总结。如果反响好,后续将会发上Android Stub与新版Android HAL的学习文档。由于蓝牙模块是串口通讯机制,使用C语言来访问,而Android的应用层采用Java,无法直接操作硬件。...
项目用到boost::asio,boost::serialization, Android打包环境配置 ... 做个记录,下次别又掉到这坑里浪费时间 1. 安装Cygwin :下载Cygwin (http://www.cygwin.com/) 安装时,默认设置,只选择Devel,将后面的Default改为Install,然后就是等了。 安装完后,进入Cygwin的终端,分别 gcc -v 和 make -v 查看版本 配置环境变量,打开vi ~/.bash_profile,添加环境变量export NDK=/cygdrive/d/Android/android-ndk-r10c输入$NDK看看是否...
上篇博客提到过SQLite,它是嵌入式数据库,由于其轻巧但功能强大,被广泛的用于嵌入式设备当中。后来在智能手机、平板流行之后,它作为文件型数据库,几乎成为了智能设备单机数据库的必选,可以随着安卓app打包到apk文件当中。SQLite的官方网站是http://www.sqlite.org/,可以任意下载,上面也有详尽的文档可以参考,这篇博客重点关注SQLite在Android开发中如何使用。在Android开发中,推荐建立一个类继承自SQLiteOpenHelper来创建...
来源:http://my.oschina.net/u/996206/blog/189914 Android 环境下: ping -c 1 -w 100 sina.cn-c: 表示次数,1 为1次 -w: 表示deadline, time out的时间,单位为秒,100为100秒。连起来的意思是,ping 主机sina.cn 一次,超时为100秒。 要命的问题:如果这个动作放在Android UI thread来做,有可能出问题。 一般的场景是在UI thread起个Runtime process来执行"ping -c 1 -w 100 sina.cn”, 然后等候其返回,一般是Process.waitfo...
activity:package com.itheima.ccalljava;import android.os.Bundle;
import android.app.Activity;
import android.app.AlertDialog.Builder;
import android.view.Menu;
import android.view.View;publicclass MainActivity extends Activity {static{System.loadLibrary("hello");}@Overrideprotectedvoid onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);}...
创建项目使用Xamarin开发安卓项目,首先需要安装VS2017以上版本。因为VS2017以上的版本,可以直接创建Xamarin项目。另外用Xamarin开发安卓项目,还需要使用Intel的CPU,并且得是双核以上的CPU,因为调试时,需要使用电脑的虚拟化,奔腾4之类的CPU是不支持虚拟化的。下面我们创建KibaXamarin_Android项目,如下图:点击确定后,会弹出一个选择模板的窗体,这里我们选择一个空白应用,并且选择最小安卓版本号为4.4,如下图: 点击OK后...
在android代码中编译一个可执行文件,主要功能是对文件的读写,简单贴出来: [cpp] view plaincopy #include <errno.h> #include <stdio.h> #include <string.h> #include <stdlib.h> #include <unistd.h> void read_data(void){ char readBuf[640*1024]; char *path = "/boot0_nand"; FILE* fp= fopen(path,"rb"); if(!fp){ printf("can‘t open %s\n",path); } size_t len = fread(readB...
使用Android Studio 出现该问题: "com.android.ide.common.process.ProcessException: org.gradle.process.internal.ExecException: Process ‘command ‘C:\Program Files\Java\jdk1.8.0_60\bin\java.exe‘‘ finished with non-zero exit value 2"
导致原因:项目中出现了重复的依赖。删除依赖项便可很容易地解决该问题。'C:\Program Files\Java\jdk1.8.0_60\bin\java.exe'' finished with non-zero exit value 2"' ref='nofol...