自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(29)
  • 收藏
  • 关注

转载 Android之JNI NDK开发的常见问题

背景: 最近一个月一直在做移植库的工作,将c代码到share library移植到Android平台。这就涉及到Android NDK(native develop kit)内容。这里只想记录下JNI(java native interface)经常遇到到问题。   问题1.  忘记delete local reference。带New到方法(如:NewByteArray)这样到方法比较好

2016-06-28 20:37:21 401

转载 Android之JNI打印调试信息-LOG打印

1. 导入log头文件在你使用的 .c/ .cpp 文件中导入 log.h 头文件 #include2.在Android.mk 中加上LOCAL_LDLIBS :=-llog注意Android.mk里有一行include $(CLEAR_VARS)必须把LOCAL_LDLIBS :=-llog放在它后面才有用,否则

2016-06-28 20:32:01 589

转载 Android之Tombstone/Crash的log分析和定位-错误分析

有一句话叫做常在河边走,哪有不湿鞋。我们这些研究和开发Android的工程师正应了这句话,相必大家在调试的时候经常会遇到这么个东西吧*** *** *** *** *** *** *** *** *** *** *** *** *** *** *** ***Build fingerprint: 'XXXXXXXXX'pid: 1658, tid: 13086  >>> system

2016-06-28 20:28:47 1142

转载 Android之ffmpeg-H264解码-移植ffmpeg中的H264解码部分到Android

H264解码器源码,移植ffmpeg中的H264解码部分到Android,深度删减优化,在模拟器(320x480)中验证通过。程序的采用jni架构。界面部分,文件读取,视频显示都是用java做的,底层的视频解码用C来做满足速度的要求。在这个版本中,从H264码流中分割出Nal是在java层做的,这样在java层直接调用解码时就知道是否有显示视频,缺点的就是耦合度/封装性差一点。

2016-06-27 20:42:52 2971

转载 android之结束所有activity-重点是第二种使用广播结束所有activity

这里介绍两种方法:一种把每个activity记住,然后逐一干掉;另一种思路是使用广播。方法一、用list保存activity实例,然后逐一干掉上代码:import java.util.LinkedList;import java.util.List;import android.app.Activity;import android.app.AlertDial

2016-06-27 20:29:14 1040

原创 android之结束所有的activity-Intent.FLAG_ACTIVITY_CLEAR_TOP详细-结束所有activity方法

1. Intent.FLAG_ACTIVITY_CLEAR_TOP 注意是 清除栈里自己以上的activity,所以叫TOP2.结束所有activity,需要写一个类保存所有activity,结束时将保存的activity全部finish-----------------------------------------------------------------

2016-06-27 20:26:22 2262

转载 Android之结束所有activity-使用Intent.FLAG_ACTIVITY_CLEAR_TOP

今天写代码遇到了一个问题:有如下几个ActivityA - B - C当 B - A - B 跳转的时候,使用Intent的FLAG_ACTIVITY_CLEAR_TOP会让第一个B和第二个A,destory掉但是当B - A - C跳转的时候不会调用B和A的destory其实这个问题以前遇到过,今天遇到的时候又忘记了。查看API文档才发现原因,所以这里记录一下避免

2016-06-27 20:11:12 423

转载 Java之Vector向量类实现自动动态增长的对象数组-类似动态数组

Vector 可实现自动增长的对象数组。 java.util.vector提供了向量类(vector)以实现类似动态数组的功能。在Java语言中没有指针的概念,但如果正确灵活地使用指针又确实可以大大提高程序的质量。比如在c,c++中所谓的“动态数组”一般都由指针来实现。为了弥补这个缺点,Java提供了丰富的类库来方便编程者使用,vector类便是其中之一。事实上,灵活使用数组也可以完成向量类的

2016-06-27 20:07:45 2177

转载 Java之System.arraycopy实现数组拷贝-类似C语言的memcpy

如果是复制一个一位数组,那么改变复制后的数组并不影响原数组。但是如果复制一个二维数组,那么改变其中任何一个数组,那么另一个的值也发生了变化。开始不是很明白,后来上网查了查资料,理解了其中奥妙。 java其实没有二维数组的概念,平常实现的二维数组只是元素是一维数组的一维数组,而数组也是引用类型,继承自Object类。数组是new出来的。这些性质也就导致arraycopy()二维数组时出现的问

2016-06-27 20:01:38 5060

原创 工具之wireshark检测不到网卡的问题

Windows7 系统下 Wireshark刚装完时可以正常使用,第二天就检测不到网卡。。。网上一查,是驱动没有启动,试了一下真的可以:管理员运行CMD,输入net start npf ,提示NetGroup Packet Filter Driver 服务已经启动成功,就可以了。

2016-06-18 09:49:15 1554

转载 Java之序列化Object对象和字节数组或文件之间的转换

Java中File,byte[],Object间的转换 1、Object 对象必须是可序列化对象 。  2、可序列化的 Object 对象都可以转换为一个磁盘文件;反过来则不一定成立,只有序列化文件才可以转换为Object对象。 示例:[java] view plain copy print?import java.io.

2016-06-17 18:20:52 5792

转载 Java之基本数据类型及类型转换

Java语言是静态类型的(statical typed),也就是说所有变量和表达式的类型再编译时就已经完全确定。由于是statical typed,导致Java语言也是强类型(Strong typed)的。强类型意味着每个变量都具有一种类型,每个表达式具有一种类型,并且每种类型都是严格定义的,类型限制了变量可以hold哪些值,表达式最终产生什么值。同时限制了这些值可以进行的操作类型以及操作的具

2016-06-17 18:19:08 556

转载 工具之网络协议分析 Wireshark基本介绍和学习TCP三次握手

之前写过一篇博客:用 Fiddler 来调试HTTP,HTTPS。 这篇文章介绍另一个好用的抓包工具wireshark, 用来获取网络数据封包,包括http,TCP,UDP,等网络协议包。记得大学的时候就学习过TCP的三次握手协议,那时候只是知道,虽然在书上看过很多TCP和UDP的资料,但是从来没有真正见过这些数据包, 老是感觉在云上飘一样,学得不踏实。有了wireshark就能截获这些网

2016-06-14 15:00:44 553

转载 Android之JNI NDK错误 No JNI_OnLoad found in /data/data/

0. 些在前面: 最近,又用到ndk去进行jni的开发了,居然连最简单的hello-jni都没有编译过。1. 报错如下:D/dalvikvm(16064): Trying to load lib /data/data/factorytest.Android.com/lib/libhello-jni.so 0x42117dc0D/dalvikvm(16064): Added

2016-06-08 16:57:28 1785

原创 Android之JNI NDK错误 c/c++ indexer has encountered a problem, An internal error occurred during xx

关闭eclipse,到你的工作目录删除目录 \.metadata\.plugins\org.eclipse.cdt.core 里面的所有 .pdom 文件

2016-06-08 16:26:04 2009 1

原创 Android之JNI NDK如何取消native support 重新add native support

切换到java视图1. 打开.project,删除cdt相关的三部分:org.eclipse.cdt.managedbuilder.core.genmakebuilderclean,full,incremental,?children??children?=?name?=entry\\\\\\\|\\\|?name?=entry\\\\\\\|\\\|\|?name

2016-06-08 16:16:43 2890

原创 Android之JNI NDK错误找不到jni.h 小黄x Type xxx could not be resolved

为什么出现这样的问题,按道理设置NDK路径之后,可以自己找到才对啊,现在没有时间去跟,等有空再研究,要是有谁知道分享一下。先解决再说,项目急。网上查了一下,都是添加路径,但还是不行。。我用的是.c,总结解决办法:1. 项目Properties -> C/C++ General -> Path and Symbolsinclude标签c,cpp,点Add添加头文件

2016-06-08 15:45:55 4589

转载 Android之JNI错误:no implementation found in native -java.lang.UnsatisfiedLinkError: Native method not

BUG:D/dalvikvm( 1704): Trying to load lib /data/data/com.ulang/lib/libulangaudio.so 0x41052a38D/dalvikvm( 1704): Shared lib '/data/data/com.ulang/lib/libulangaudio.so' already loaded in same CL 0x

2016-06-07 17:02:02 1369

转载 Android之 Eclipse NDK编译——常见错误的解决方法记录

在工程目录下的jni文件夹下编写的c/c++代码在编译时,通常会遇到如下的几种类型错误:1、Unresolved inclusion:2、syntax error3、Function 'XXX' could not be resolved4、Type 'XXX' could not be resolved5、Symbol 'XXX' could not be

2016-06-06 18:36:44 497

转载 Android之eclipse 新版NDK环境搭建(免Cygwin,超级快)-可用

以前做Android的项目要用到NDK就必须要下载NDK,下载安装Cygwin(模拟Linux环境用的),下载CDT(Eclipse C/C++开发插件),还要配置编译器,环境变量...  麻烦到不想说了,Shamoo在网上查了一下资料,发现了一个超级快配置NDK的办法。  Step1:到Android官网下载Android的开发工具ADT(Android Deve

2016-06-06 16:30:12 542

转载 Android之eclipse NDK开发环境的搭建

网上有很多关于搭建Android NDK开发环境的文章,发现很多都不能用,大部分都是过时的,比如安装什么Cygwin,在eclipse里面新建什么Builder之类的,有的只有部分内容。经过一天的摸索终于搭建好了android NDK开发环境,包括C/C++的调试等,废话不多说,开始我们的搭建流程。       首先、下载android NDK,得到一个android-ndk-r10d

2016-06-04 16:38:50 121

转载 Android之eclipse adt开发ndk没有NDK选项问题的解决方案

今天是2015年1月28号,整理一下昨天使用eclipse adt搭建的Android ndk开发平台,遇到的eclipse里面没有NDK选项的问题。       自从Google推出android studio 1.0版以后,官方就不再提供bundle的版本下载,只能先下载eclipse,然后在eclipse上安装adt,只要是全选,这个时候是不存在没有NDK选项这个问题的。但是很多以前

2016-06-04 16:23:12 636

转载 C之详解编译和链接过程

前几天看了《程序员的自我修养——链接、装载与库》中的第二章“编译和链接”,主要根据其中的内容简单总结一下C程序编译的过程吧。我现在一般都是用gcc,所以自然以GCC编译hellworld为例,简单总结如下。 hello.c源代码如下:?[Copy to clipboard]View Code C123456

2016-06-03 17:28:13 811

转载 Android之项目中JNI调用已有的Android平台so库

注意该.so库指的是Android平台的,非一般linux、unix平台;1、现有库libcom_ycan_testLib.so2、新建android项目TestLib23、添加新类:类名:testLib包路径:参考现有库名,应为com.ycan4、在新类中声明库的本地方法,如下:[java] view plain cop

2016-06-01 16:53:34 417

转载 Java之序列化SerialVersionUID的作用

先总结下:         Serializable接口 标记类可以被序列化(ObjectOutputStream)和反序列化(ObjectInputStream)暴露了类的内存代表二进制数据,private的属性域不安全。默认的序列化将Object的Class name, non-tranient fields 和域值编码成二进制序列,二进制序列可以反编译成Object实例。类的名称

2016-06-01 15:35:16 2012

转载 java之序列化Serialization 机制

基本使用方法               Serialization是指把类或者基本的数据类型持久化(persistence)到数据流(Stream)中,包括文件、字节流、网络数据流。          JAVA中实现serialization主要靠两个类:ObjectOuputStream和ObjectInputStream。他们是JAVA IO系统里的OutputStream和Inpu

2016-06-01 15:13:09 432

转载 Java之序列化 (Serialization) 详细教程

Java提供一种机制叫做序列化,通过有序的格式或者字节序列持久化java对象,其中包含对象的数据,还有对象的类型,和保存在对象中的数据类型。所以,如果我们已经序列化了一个对象,那么它可以被读取并通过对象的类型和其他信息进行反序列化,并最终获取对象的原型。ObjectInputStream 和 ObjectOutputStream对象是高级别的流对象,包含序列化和反序列化的方法。

2016-06-01 15:05:49 685

转载 JAVA之序列化(Serialization)的理解

目录[-]1、什么是序列化2、为什么叫序列化3、序列化保存那些内容3、序列化的用途4、什么是流(Stream)4、使用序列化功能5、什么样的类可以序列化6、进一步的内容

2016-06-01 15:01:48 842

转载 Android之界面刷新 View更新 Invalidate和postInvalidate的区别

Android中实现view的更新有两组方法,一组是invalidate,另一组是postInvalidate,其中前者是在UI线程自身中使用,而后者在非UI线程中使用。 Android提供了Invalidate方法实现界面刷新,但是Invalidate不能直接在线程中调用,因为他是违背了单线程模型:Android UI操作并不是线程安全的,并且这些操作必须在UI线程中调用。   

2016-06-01 14:44:48 992

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除