最近一直都在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...
Android For JNI(二)——C语言中的数据类型,输出,输入函数以及操作内存地址,内存修改器当我们把Hello World写完之后,我们就可以迈入C的大门了,今天就来讲讲基本的一些数据类型,函数之内的我们先来看一张传播久远的图片‘一.各种数据类型介绍整型整形包括短整型、整形和长整形。短整形short a=1;整形一般占4个字节(32位),最高位代表符号,0表示正数,1表示负数,取值范围是-2147483648~2147483647,在内存中的存储顺序是地...
1 下载NDK 地址: http://developer.android.com/tools/sdk/ndk/index.html 2 下载后双击自动解压到当前目录,建议与android sdk平级 D:\android\android-ndk-r10c 3 添加环境变量 ndk=D:\android\android-ndk-r10c4 添加演示程序eclipse下右键 New -> Other -> Android ->Android project from Existing SourceBrowse 选择 D:\android\android-ndk-r10c\samples\hello-jniFinsh 5 编译jni cd <工作空间>/hello-jni%ndk%/ndk...
android调试工具addr2line使用:1.将ndk中的arm-linux-androideabi-addr2line可执行文件的路径加入配置文件~/.bashrc中,例如:export
PATH=$PATH:~/dlna/android-ndk-r6b/toolchains/arm-linux-androideabi-4.4.3/prebuilt/linux-x86/bin2.使配置生效:source ~/.bashrc3.使用工具。例如:arm-linux-androideabi-addr2line -C -f -e
~/workspace/DLNA/libs/armeabi/libctrlpt.so 0003deb4其中,0003deb4为堆栈信息中pc的值。 使...
最近在iOS项目中需要使用到oc与js之间的相互调用,而且要求是实现方式必须与Android中的相同,方便js中统一处理。于是在对第三方库WebViewJavascriptBridge进行研究之后,仿照Android中的WebView与JS的交互机制,实现了一个,在这里分享给大家。首先要说明的是,在iOS中js调用Objective-C的代码只能通过重定向的形式进行,即js中通过修改iframe的src,或者直接跳转到一个url,在Objective-C中通过UIWebView的webView:shouldStartLo...
观察者模式 Observer实现目标:变换select框来变动内容区和广告区 一般思路1:判断选中的值 2:顺序下来,根据值,修改内容区域 3:再修改广告区域.if(v == '男') {内容区背景变灰广告区内容变成男人话题
}elseif(v == '女'){内容区背景变粉广告区内容变成女人话题
}那么问题有哪些:
1:让你选择时引起3个区域的变化,是否要修改if/elseif部分
2:如果选择女性样式,但不要变粉,现在流行变紫色,是否又要修改if elseif部分?
问题在于: 控...