- 博客(97)
- 资源 (5)
- 收藏
- 关注
转载 JNI ERROR (app bug): attempt to use stale local reference 0x31900019(Android ICS(4.0+) JNI局部应用的变化)
本文转载自:译序:这篇文章的内容实际是在我发现一个项目bug后寻找解决方案时找到的,当时项目原有target为8(ICS 4.0之前的2.X版本),在4.0+的S3上运行一切正常,而后target升级到14时再在S3上运行时就会出现类似如下的native crash:05-13 14:07:13.139: E/dalvikvm(22265): JNI ERROR
2014-08-28 10:01:59 4432 1
转载 java设置控件的 layout_marginleft 属性
[java] view plaincopyLinearLayout.LayoutParams lp = new LinearLayout.LayoutParams(LinearLayout.LayoutParams.WRAP_CONTENT, LinearLayout.LayoutParams.WRAP_CONTENT); lp.setMargins(left
2013-10-22 10:02:31 1854
转载 浮点数在计算机中的存储方式
C语言和C#语言中,对于浮点类型的数据采用单精度类型(float)和双精度类型(double)来存储,float数据占用32bit,double数据占用64bit,我们在声明一个变量float f= 2.25f的时候,是如何分配内存的呢?如果胡乱分配,那世界岂不是乱套了么,其实不论是float还是double在存储方式上都是遵从IEEE的规范的,float遵从的是IEEE R32.24 ,而dou
2013-10-13 15:58:54 835
原创 进程和线程的区别
简而言之,一个程序至少有一个进程,一个进程至少有一个线程. 线程的划分尺度小于进程,使得多线程程序的并发性高。另外,进程在执行过程中拥有独立的内存单元,而多个线程共享内存,从而极大地提高了程序的运行效率。线程在执行过程中与进程还是有区别的。每个独立的线程有一个程序运行的入口、顺序执行序列和程序的出口。但是线程不能够独立执行,必须依存在应用程序中,由应用程序提供多个线程执行控制。从逻
2013-09-26 17:25:41 791
转载 当你输入一个网址的时候,实际会发生什么?
作为一个软件开发者,你一定会对网络应用如何工作有一个完整的层次化的认知,同样这里也包括这些应用所用到的技术:像浏览器,HTTP,HTML,网络服务器,需求处理等等。本文将更深入的研究当你输入一个网址的时候,后台到底发生了一件件什么样的事~1. 首先嘛,你得在浏览器里输入要网址:2. 浏览器查找域名的IP地址导航的第一步是通过访问的域名找出其I
2013-09-26 17:03:07 781
转载 void 指针(2013-09-23 优酷土豆笔试)
优酷的笔试 考到了 void 指针一个题目,没有什么概念,回来恶补一下。(from:http://www.cppblog.com/dragon/archive/2008/09/02/60760.html)指针有两个属性:指向变量/对象的地址和长度 但是指针只存储地址,长度则取决于指针的类型 编译器根据指针的类型从指针指向的地址向后寻址 指针类型不同则寻址范围也不同,比如:
2013-09-26 10:46:33 772
转载 SQL过关
from:http://blog.csdn.net/blue_jjw/article/details/8818719引言做为一个web开发者,不与数据库打交道几乎是不可能的!由此可见,掌握SQL语句对于一个web开发人员来说是多么的重要。下面是我在整理电脑时,找到的资料,觉得还不错就拿出来与大家分享。不废话了,好不好你看了就知道。进入主题,本文的主要内容如下:
2013-09-11 15:06:00 939
转载 C++项目中的extern "C" {}
致谢,from:http://www.cnblogs.com/skynet/archive/2010/07/10/1774964.html引言在用C++的项目源码中,经常会不可避免的会看到下面的代码:?123456789#ifdef __cplusplus
2013-08-28 11:07:11 875
转载 【待字闺中-2】单链表和之恋
出处:http://hawstein.com/posts/add-singly-linked-list.html题目两个单链表(singly linked list),每一个节点里面一个0-9的数字, 输入就相当于两个大数了。然后返回这两个数的和(一个新list)。这两个输入的list 长度相等。 要求是:1. 不用递归。2. 要求算法在最好的情况下,只遍历两个li
2013-08-01 16:36:59 863
转载 【待字闺中-1】海枯石烂
原题:两个玩家,一堆石头,假设多于100块,两人依次拿,最后拿光者赢,规则是:第一个人不能一次拿光所有的;第一次拿了之后, 每人每次最多只能拿对方前一次拿的数目的两倍。求先拿者必胜策略, 如果有的话。怎么证明必胜。分析:这是斐波那契博弈,当且仅当石头个数是斐波那契数的时候先手必败。让我们用第二数学归纳法证明:为了方便,我们将 n 记为 f[i] 。1
2013-08-01 16:33:41 953
转载 重载(overload)覆盖(override)与隐藏 的区别
谈谈重载(overload)覆盖(override)与隐藏 转自http://blog.csdn.net/yanjun_1982/archive/2005/09/02/470405.aspx 这三个概念都是与OO中的多态有关系的。如果单是区别重载与覆盖这两个概念是比较容易的,但是隐藏这一概念却使问题变得有点复杂了,下面说说它们的区别吧。 重载是指不同的函数使
2013-07-26 15:11:04 746
转载 类/对象大小计算
1,类大小计算遵循结构体对齐原则什么是内存对齐编译器为每个“数据单元”按排在某个合适的位置上。C、C++语言非常灵活,它允许你干涉“内存对齐”为什么要对齐性能原因:在对齐的地址上访问数据快。如何对齐第一个数据成员放在offset为0的位置其它成员对齐至min(sizeof(membe
2013-07-23 15:25:24 947
转载 static成员变量,staitic成员函数以及 实现只能实例化3次的类
一、static 成员变量对于特定类型的全体对象而言,有时候可能需要访问一个全局的变量。比如说统计某种类型对象已创建的数量。如果我们用全局变量会破坏数据的封装,一般的用户代码都可以修改这个全局变量,这时可以用类的静态成员来解决这个问题。非static数据成员存在于类类型的每个对象中,static数据成员独立该类的任意对象存在,它是与类关联的对象,不与类对象关联。(1)、
2013-07-23 15:14:38 1115
转载 dynamic_cast详解
作为四个内部类型转换操作符之一的dynamic_cast和传统的C风格的强制类型转换有着巨大的差别。除了dynamic_cast以外的转换,其行为的都是在编译期就得以确定的,转换是否成功,并不依赖被转换的对象。而dynamic_cast则不然。在这里,不再讨论其他三种转换和C风格的转换。首先,dynamic_cast依赖于RTTI信息,其次,在转换时,dynamic_cast会检查转换的sou
2013-07-18 20:21:46 684
转载 C++/C宏定义中## 连接符与# 符的含义
转自:1.http://blog.csdn.net/believefym/article/details/18361622.http://www.yunsec.net/a/school/ymbc/C/2009/1027/1243.html3,http://www.cnblogs.com/qinfengxiaoyue/archive/2013/02/03/2890581.html
2013-07-18 16:39:15 849
原创 拷贝构造函数,类的赋值运算符重载,深拷贝与浅拷贝
1,首先明确:拷贝构造函数与重载赋值操作符在没有定义的情况下,编译器也会为我们生成一个,这说明这两个函数是一个类必不可少的部分。如果一个类没有定义任何的东西,编译器也会帮助我们生成下面的4个函数:1、一个构造函数,2、析构函数,3、复制构造函数,4、重载赋值操作符。2,默认的拷贝构造函数 和 重载重载赋值操作符 都是对象间的位拷贝(浅拷贝),也就是把对象里的值完全复制给另一个对象。在某些状
2013-06-28 10:21:47 892
原创 java.lang.Illegalargumentexception: the surface has been released
功能:进入一个activity,使用MediaPlayer和SurfaceView类来播放视频,启动activity时,直接初始化做MediaPlayer.start(),而不是通过一个监听器什么的来启动,就会出现:The surface has been released.错误位置:mediaplayer.setDisplay(surfaceView.getHost());原因:medi
2013-06-26 21:57:39 10185
转载 android MediaPlayer的基本使用方法
使用MediaPlayer播放音频或者视频的最简单例子:JAVA代码部分:public class MediaPlayerStudy extends Activity { private Button bplay,bpause,bstop; private MediaPlayer mp = new MediaPlayer(); @Override
2013-06-25 15:59:25 881
转载 Parcalable接口使用(android传递结构体数据的方法)
对于Android来说传递复杂类型,主要是将自己的类转换为基础的字节数组,Activity之间传递数据是通过Intent实现的。 Android序列化对象主要有两种方法,实现Serializable接口、或者实现Parcelable接口。实现Serializable接口是Java SE本身就支持的,而Parcelable是Android特有的功能,效率比实现Serializable接口高,而且
2013-06-25 10:47:43 2381
转载 service 启动 activity
我想我们一般在Service里想启动Activity一定会这样写: Java代码 Intent intentv = new Intent(Intent.ACTION_VIEW); intentv.setData(uri); intentv.putExtra("keepTitle", true);
2013-06-25 10:43:09 966
原创 我使用过的 控件的一些特性(layout_weight,paddingleft)
以Button为例,但不限于Button,其他的控件都可以使用代码中常用属性:Button bt=new Buttion(Context context);bt.setText();---为控件设置文本内容xml中常用属性:android:layout_width=""---控件宽android:layout_height=""---控件
2013-06-25 10:41:13 674
转载 java.lang.RuntimeException: Unable to start activity ComponentInfo 错误的一些信息
解决案例一:错误信息如下:ERROR/AndroidRuntime(327): java.lang.RuntimeException: Unable to start activity ComponentInfo{org.lee.android/org.lee.android.radioPlayer}: java.lang.ClassCastException: android.w
2013-06-25 10:35:45 986
原创 Android中 String 和 Uri类型的转换
1,String ----> UriUri uri = Uri.parse((String) str);例如: str = “content://*******”str = "file://**********"str = "http://*************"str = "ftp://***********"2,Uri -----> String
2013-06-19 15:02:08 33613
转载 Failed to allocate memory: 8
昨天换了x64的Win7,发现在Eclipse上启动模拟器的时候存在问题,当设置的模拟器分辨率大于400×800的时候会出现Failed to allocate memory: 8This application has requested the Runtime to terminate it in an unusual way.Please contact the appl
2013-06-19 14:34:05 946
转载 android模拟器启动出错:Failed to allocate memory: 8
在android模拟器创建的4.1.2,wxga720设备上,lanch 模拟器时,经常出现:Failed to allocate memory: 8在网上搜索了一下,总结的解决方案无非以下几点:1、把设备的ram改小一点,如从1024M改成512M就ok了。但很多时候并不起作用。2、降低分辨率这个有时候起作用3、关闭一些应用程序,如chro
2013-06-18 09:26:24 1115
转载 JNI返回值方法总结
在掌握了JNI函数的使用和相关类型的映射后,以及知晓何利用javah工具生成对应的jni函数以及如何生成动态 链接库 (windos下就是.dll库,Linux就是.so库了,不懂在Window下生成dll动态库的,具体流程可看我的这篇博客: 《Android中JNI的使用之一:Java原生JNI的使用、javah指令的使用以及图解教材》)。即可掌握JNI的使用了了。
2013-06-17 10:08:10 4623 3
转载 Android中播放视频的三种方式
在Android中,我们有三种方式来实现视频的播放:1、使用其自带的播放器。指定Action为ACTION_VIEW,Data为Uri,Type为其MIME类型。2、使用VideoView来播放。在布局文件中使用VideoView结合MediaController来实现对其控制。3、使用MediaPlayer类和SurfaceView来实现,这种方式很灵活。
2013-06-15 15:36:25 2043
转载 Android特效 五种Toast详解
Toast是Android中用来显示显示信息的一种机制,和Dialog不一样的是,Toast是没有焦点的,而且Toast显示的时间有限,过一定的时间就会自动消失。1.默认效果:代码:Toast.makeText(getApplicationContext(), "默认Toast样式", Toast.LENGTH_SHORT).show();2
2013-06-15 15:34:29 874 2
转载 jstring 和 char* 转换
//jstring to char*char* jstringTostring(JNIEnv* env, jstring jstr){ char* rtn = NULL;jclass clsstring = env->FindClass("java/lang/String");jstring strencode = env->NewStringUTF("utf-8
2013-06-08 15:42:10 846
转载 (Android jni) error: base operand of '->' has non-pointer type '_JNIEnv'
Android将“.c”后缀名改为“.cpp”时java调用native失败及“error: base operand of '->' has non-pointer type '_JNIEnv'现象:“.c”后缀名改为“.cpp”时java调用native失败 。解决: 加入“ extern "C" ”。 现象:“error: base operand
2013-06-03 11:07:33 1759
原创 Android jni实例(android源码树编译so库)
在Android 模拟器中可以对Android手机操作系统进行适当的修改,增加各种功能,以满足用户的需求。那么今天我们会为大家带来Android Jni的相关使用方法,以方便大家对这一系统的解读。Android的应用程序(Dalvik VM)中使用JNI(Java Native Interface)调用C/C++开发的共享库。开发环境(ADT Bundle)
2013-05-30 10:37:32 1568
转载 Java JNI 实例
JAVA可以通过JNI接口访问本地的动态连接库,从而扩展JAVA的功能。使用JAVA JNI接口主要包括以下步骤:(1)编写JAVA代码,注明要访问的本地动态连接库和本地方法;(2)编译JAVA代码得到.class文件;(3)使用javah -jni 生成该类对应的C语言.h文件;(4)使用C/C++实现(3)生成的.h文件中声明的各函数;(5)编译C/C++实现代码生成动态连
2013-05-29 14:22:21 752 1
转载 用javah 导出类的头文件, 常见的错误及正确的使用方法
********************************************************************************用javah 导出类的头文件, 常见的错误及正确的使用方法********************************************************************************正确的使用
2013-05-28 20:33:00 930
转载 Exception in thread "main" java.lang.NoClassDefFoundError错误信息
1、你的文件名对吗?JAVA要求你的文件和你的类名严格对应的。比如 public class HelloWorld{ .....那么文件名一定只能是HelloWorld.java,看仔细了!2、你的程序中有main方法吗?参数什么的对吗?main方法的声明应该是这样子的:public static void main(String[] args) 事实上如果你用开发
2013-05-28 20:32:17 1662
原创 Ubuntu-server 12.04 安装JDK
(为了实现JNI操作,需要在Ubuntu上安装jdk,居然费了大半个小时)1 卸载openjdksudo apt-get purge openjdk*2 安装Oracle java 7:直接$sudo apt-get install sun-java6-jdk,提示找不到软件包,因为Ubuntu去掉了sun-java6-jre,sun-java6-jdk的源,如果直
2013-05-28 16:48:56 809
原创 2013阿里巴巴暑期实习生笔试题目
时间:2013.05.05地点:北大三教(好多记不清了,记录下几道以飨后人)(1-14为选择题)1 sata硬盘的读取速度();18xDVD的读取速度();千兆网的读取速度();(还有一个记不清了)2 操作系统相关的:任务的 cpu时间 和 I/O时间,调度可以节省多少时间?5 2个线程调度下程序,a是全局变量,初始值为0,++,--认为是原子操作,不可能的输出是:
2013-05-06 09:14:41 869
转载 stringstream的用法
FROM:http://www.cnblogs.com/kex1n/archive/2011/11/06/2237934.html分为istream和ostringstream.1 std::string name("zeta");2 int age = 27;3 4 ostringstream os;5 os "name:""""age:"6
2013-01-16 15:09:40 537
翻译 XBMC开发教程
翻译自:http://wiki.xbmc.org/index.php?title=XBMC_Skinning_TutorialsXBMC皮肤开发教程欢迎来到XBMC皮肤开发教程的页面。这里既可以帮助XBMC皮肤开发新手了解整个系统是怎么工作的,也可以为老手提供一些有帮助的东西。现在立刻开始一个任务来看一下皮肤开发是怎么做的。注意:更多关于XBMC皮肤开发的信息请关注页面 “Skin
2013-01-14 11:20:05 1864
翻译 XBMC皮肤开发手册
翻译自:http://wiki.xbmc.org/index.php?title=XBMC_Skinning_Manualps:还有好多没有翻译的,后面用到的时候在补上,慢慢完善。XBMC皮肤开发手册XBMC包含一个从头编写的新的GUI库。这个库允许你改变XBMC中你能看到的一切,例如图像,所有控件、颜色、字体和文本的位置和大小,通过改变导航,甚至可以增加新的功能。皮肤
2013-01-14 11:17:23 1511
Android root源码(利用CVE-2013-6282漏洞)
2014-08-25
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人