自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

转载 JNI log来代替printf打印调试

Printf属于linux应用的打印机制,在androd系统当中没有对应的输出机制,只有在终端下执行时才能回显出来。LOGE属于android专门定义的机制Android logger,专门打印除kernel外的所有应用的log输出。  Android NDK 开发时,想要在 .c 文件中打印一些调试信息的话,是不能使用 printf() 方法的,NDK 根本不支持

2016-08-31 18:50:44 357

转载 Use printf in Android JNI

Problem:        Android can debug by logcat. So Android JNI need it to debug. This method let JNI code can print something we need in logcat. 1.         Define LOG in c fileAdd the fol

2016-08-31 18:38:37 325

转载 Android热修复实践应用--AndFix

一直关注App的热修复的技术发展,之前做的应用也没用使用到什么热修复开源框架。在App的热修复框架没有流行之前,做的应用上线后发现一个小小的Bug,就要马上发一个新的版本。我亲身经历过一周发两个版本,真的折腾用户的节奏~~所以,要开始考虑引入热修复。下面记录使用开源框架阿里巴巴的AndFix过程。实现的原理这里说的不是热修复怎么实现修bug的原理,这里说的是怎么使用AndFix。如果你

2016-08-31 11:27:15 234

转载 JNI与Android VM之间的关系

1. 如何载入*.so文件由于Android的应用层级类别都是以Java撰写的,这些Java类别转译为Dex型式的Bytecode之后,必须仰赖Dalvik虚拟机(VM: Virtual Machine)来执行。另外,当java需要调用c native组件时,VM就会去加载本地的c组件,让java函数能顺利的调用到C函数。此时,VM扮演着桥梁的角色,让java和c组件能通过透明的J

2016-08-31 11:24:53 470

转载 Android NDK调试出错Unknown Application ABI, Unable to detect application ABI's的解决方案

今天在调试Android NDK的时候,ADT的控制台报了这个错误:       Unknown Application ABI, Unable to detect application ABI's        在网上查了好久,终于找到了解决方案:         在工程的jni文件夹下面新建一个Makefile类型的文件,文件名为Application。(注:如果你不

2016-08-30 19:11:47 784

转载 eclipse NDK开发中找不到头文件解决方法

网上收集,试过有效,特记录于此eclipse做NDK开发时包含jni头文件时有黄色小箭头表示的含义是:jni.h和其他系统头文件找不到的问题,解决方法是初始化eclipse对该project的native support1. 在eclipse中关闭指定Project2. 用其他编辑工具打开该project的.project文件,删除以下内容:......

2016-08-30 18:04:30 1403

转载 C++学习笔记(十) 内存机制与Allocator

C++为我们提供了安全的内存空间申请方式与释放方式,但是new与delete表达式却是把空间的分配回收与对象的构建销毁紧紧的关联在一起。实际上,作为与C语言兼容的语言,C++也为我们提供了更加底层的内存操作方式的。谈C++就离不开STL,考虑一下vector[cpp] view plain copytemplate class T> 

2016-08-30 11:21:11 414

转载 HTTP 协议详解

当今web程序的开发技术真是百家争鸣,ASP.NET, PHP, JSP,Perl, AJAX 等等。 无论Web技术在未来如何发展,理解Web程序之间通信的基本协议相当重要, 因为它让我们理解了Web应用程序的内部工作. 本文将对HTTP协议进行详细的实例讲解,内容较多,希望大家耐心看。也希望对大家的开发工作或者测试工作有所帮助。使用Fiddler工具非常方便地捕获HTTP Request和HT

2016-08-26 19:58:51 494

转载 关于android WebViewClient和WebChromeClient

一、Android之WebViewClient与WebChromeClient的区别ANDROID应用开发的时候可能会用到WEBVIEW这个组件,使用过程中可能会接触到WEBVIEWCLIENT与WEBCHROMECLIENT,那么这两个类到底有什么不同呢?WebViewClient主要帮助WebView处理各种通知、请求事件的,比如:onLoadRes

2016-08-26 11:55:12 208

转载 Java中Synchronized的用法

《编程思想之多线程与多进程(1)——以操作系统的角度述说线程与进程》一文详细讲述了线程、进程的关系及在操作系统中的表现,这是多线程学习必须了解的基础。本文将接着讲一下Java线程同步中的一个重要的概念synchronized.synchronized是Java中的关键字,是一种同步锁。它修饰的对象有以下几种: 1. 修饰一个代码块,被修饰的代码块称为同步语句块,其作用的范围是大括号{}

2016-08-24 18:21:39 161

转载 linux c语言 select函数用法

Select在Socket编程中还是比较重要的,可是对于初学Socket的人来说都不太爱用Select写程序,他们只是习惯写诸如connect、accept、recv或recvfrom这样的阻塞程序(所谓阻塞方式block,顾名思义,就是进程或是线程执行到这些函数时必须等待某个事件的发生,如果事件没有发生,进程或线程就被阻塞,函数不能立即返回)。可是使用Select就可以完成非阻塞(所

2016-08-23 16:32:16 252

转载 Linux中mprotect()函数的用法

在Linux中,mprotect()函数可以用来修改一段指定内存区域的保护属性。函数原型如下:#include  #include  int mprotect(const void *start, size_t len, int prot); mprotect()函数把自start开始的、长度为len的内存区的保护属性修改为prot指定的值。prot

2016-08-22 20:11:43 924

转载 Linux下的C编程实战

C编程实战(一)――开发平台搭建1.引言       Linux操作系统在服务器领域的应用和普及已经有较长的历史,这源于它的开源特点以及其超越Windows的安全性和稳定性。而近年来,Linux操作系统在嵌入式系统领域的延伸也可谓是如日中天,许多版本的嵌入式Linux系统被开发出来,如ucLinux、RTLinux、ARM-Linux等等。在嵌入式操作系

2016-08-22 20:10:05 761

转载 Android开发内存管理之道

相信一步步走过来的Android从业者,每个人都会遇到OOM的情况。如何避免和防范OOM的出现,对于每一个程序员来说确实是一门必不可少的能力。今天我们就谈谈在Android平台下内存的管理之道,开始今天的主题之前,先再次回顾两个概念。内存泄漏:对象在内存heap堆中中分配的空间,当不再使用或没有引用指向的情况下,仍不能被GC正常回收的情况。多数出现在不合理的编码情况下,比如在 Activi

2016-08-22 20:04:34 171

转载 Android如何判断应用程序是安装在手机内存中还是SD卡

[java] view plain copy/**   * 判断包名所对应的应用是否安装在SD卡上   * @param packageName   * @return, true if install on SD card     */  public static boolean isInstallOnSDCard(String packag

2016-08-22 19:48:11 2440

转载 Eclipse配置C/C++环境教程

本次为大家带来的是用Eclipse配置C/C++环境的具体步骤,希望对大家有帮助哦。本次为大家带来的是用Eclipse配置C/C++环境的具体步骤,希望对大家有帮助哦。Eclipse 配置C/C++开发环境讲解如下:1.JDK下载如果没有安装JDK环境的小伙伴请自行去官网下载安装啦,安装之后的就可以跳过此步.下载地址:JDK下载 JDK环境配置2.Eclipse

2016-08-22 19:13:21 5825

转载 广播接收器 broadcast sendOrderedBroadcast android

广播接收器: 广播接收者(BroadcastReceiver)用于监听系统事件或应用程序事件,通过调用Context.sendBroadcast()、Context.sendOrderedBroadcast()可以向系统发送广播意图,通过广播一个意图(Intent)可以被多个广播接收者所接收,从而可以在不用修改原始的应用程序的情况下,让你对事件作出反应。       其中C

2016-08-22 19:11:20 423

转载 Android性能优化之避免过度渲染

1)Why Rendering Performance Matters现在有不少App为了达到很华丽的视觉效果,会需要在界面上层叠很多的视图组件,但是这会很容易引起性能问题。如何平衡Design与Performance就很需要智慧了。2)Defining ‘Jank’大多数手机的屏幕刷新频率是60hz,如果在1000/60=16.67ms内没有办法把这一帧的任务执行完毕,就

2016-08-22 18:34:28 518

转载 JNI学习之Invocation API

ttp://docs.oracle.com/javase/8/docs/technotes/guides/jni/spec/invocation.html的学习笔记,限于英文水平和对JNI的理解,可能存在错误。简介通过使用Invocation API,使用C/C++开发的本地应用可以访问Java虚拟机提供的特性。为了描述简单,下面提到的VM指的都是Java虚拟机。创建VM

2016-08-22 12:25:03 462

转载 工作积累之NDK编译STL

方法:1.在jni目录下新建Application.mk; 加入 APP_STL :=  stlport_static  右边的值还可以换成下面几个:system - 使用默认最小的C++运行库,这样生成的应用体积小,内存占用小,但部分功能将无法支持stlport_static - 使用STLport作为静态库,这项是Android开发网极力推荐的stlport_s

2016-08-22 12:18:20 224

转载 va_start和va_end使用详解

本文主要介绍va_start和va_end的使用及原理。  在以前的一篇帖子Format MessageBox 详解中曾使用到va_start和va_end这两个宏,但对它们也只是泛泛的了解。  介绍这两个宏之前先看一下C中传递函数的参数时的用法和原理: 1.在C中,当我们无法列出传递函数的所有实参的类型和数目时,可以用省略号指定参数表void foo(

2016-08-22 11:56:25 272

转载 C++中const成员函数和const对象

一、C++中函数和对象1.const数据成员:跟const常量一样,只是一个在类里(而且是在构造函数里),一个在类外而已,都必须初始化。2.const成员函数:即普通成员函数后再加const。它可以读取数据成员的值,但不能修改它们。若要修改时,数据成员前必须加mutable。以指定其可被任意更改。mutable是ansi c++考虑到实际编程时,可能一定要修改const对象中的某个

2016-08-17 18:21:38 234

转载 Error:Program "sh" not found in PATH

Android平台下运行opencv程序,装完NDK,解决了jni以及Conversion to Dalvik format failed with error 1等问题后,出现如下提示:Error:Program "sh" not found in PATH,多方尝试,解法如下:)1.    配置NDK路径   窗口->首选->Android->NDK ,

2016-08-15 18:18:10 492 1

原创 全平台的Crash解决方案

重视CrashCrash对移动端应用的用户留存率、口碑和收入都有非常大的影响!https://bugly.qq.com/introduction

2016-08-15 18:12:29 394

转载 ADT+CDT VS +NDK +Eclipse 编写C++程序

1、下载ADT (自带CDT)2、下载NDK3、下载Visual Studio4、ADT中  Help ->Install new software 安装CDT Visual C++ Support安装后需要重启5、对着Android工程右键 查看属性New 新增一个Program 选OKName自己写一个

2016-08-11 15:56:19 185

转载 Android NDK环境搭建与简单实例

一、NDK与JNI简介 NDK全称为native development kit本地语言(C&C++)开发包。而对应的是经常接触的Android-SDK,(software development kit)软件开发包(只支持java语言开发)。简单来说利用NDK,可以开发纯C&C++的代码,然后编译成库,让利用Android-SDK开发的Java程序调用。NDK开发的可以称

2016-08-11 15:47:22 307

转载 史上最易懂的Android jni开发资料--NDK环境搭建

谷歌改良了ndk的开发流程,对于Windows环境下NDK的开发,如果使用的NDK是r7之前的版本,必须要安装Cygwin才能使用NDK。而在NDKr7开始,Google的Windows版的NDK提供了一个ndk-build.cmd的脚本,这样,就可以直接利用这个脚本编译,而不需要使用Cygwin了。只需要为Eclipse Android工程添加一个Builders,而为Eclipse配置的bui

2016-08-11 15:05:34 156

空空如也

空空如也

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

TA关注的人

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