- 博客(18)
- 收藏
- 关注
原创 IOS atomic与nonatomic,assign,copy与retain的定义和区别
atomic和nonatomic用来决定编译器生成的getter和setter是否为原子操作。 atomic 设置成员变量的@property属性时,默认为atomic,提供多线程安全。 在多线程环境下,原子操作是必要的,否则有可能引起错误的结果。加了atomic,setter函数会变成下
2014-09-18 10:43:08
369
转载 iOS开发60分钟入门
iOS开发60分钟入门本文面向已有其它语言(如Java,C,PHP,Javascript)编程经验的iOS开发初学者,初衷在于让我的同事一小时内了解如何开始开发iOS App,学习目标包括:能使用Xcode IDE、模拟器能修改、调试已有iOS App能在已有应用内创建新模块能创建新应用能发布应用到App Store本文不包含任何高级的iOS开发知识,已学会iOS开发的同学
2014-07-27 20:35:58
687
原创 如何学习Objectve-C
1.请先把C语言基础学好;2.看《Programming in Objective-C 2.0》,不要看《Objective-C 2.0程序设计》;3.看《Cocoa Design Patterns》和《Cocoa Programming Developer's Handbook》,不要因为他们很难而我们自己是初学者所以就不看;4.是的,你需要一台Mac,如果你真的打算好好学Objec
2014-07-16 18:07:26
626
原创 Objective-c学习
objective-c只不过是拥有一些附加特性的C语言。本质上就是C语言1.C语言使用#include通知编译器应在头文件中查询定义。objective-c也可以使用#include来实现这个目的,但你永远不可能这么做,你会用#import,它是GCC编译器提供的,#import可以保证头文件只被包含一次。xcode会使用预编译头文件(一种经过压缩的,摘要形式的头文件),在通过
2014-07-16 18:05:26
671
原创 真机调试 Error in final launch sequence Failed to execute MI command:
目前暂没有解决方案
2014-07-15 16:45:51
6313
原创 NDK调试 No symbol table is loaded. Use the "file" command.
使用ndk-gdb --start 启动程序第一个activity,但是此时so文件并没有被加载。解决方法:首先打开程序并使用,在保证so文件已经被使用的情况下,调用ndk-gdb命令调试程序进程。正确流程:1.创建一个模拟器或者使用真机运行想要调试的程序,确保so文件已经被加载。一个比较简单的方法,在load so库的java文件中添加一个无关紧要的方法,比如:
2014-07-14 15:24:22
846
3
转载 使用 Java Native Interface 的最佳实践
http://www.ibm.com/developerworks/cn/java/j-jni/
2014-07-08 13:26:32
434
原创 android 运用线程
当第一次启动一个Android程序时,Android会自动创建一个称为“main”主线程的线程。这个主线程(也称为UI线程)很重要,因为它负责把事件分派到相应的控件,其中就包括屏幕绘图事件,它同样是用户与Andriod控件交互的线程。比如,当你在屏幕上按下一个按钮后,UI线程会把这个事件分发给刚按得那个按钮,紧接着按钮设置它自身为被按下状态并向事件队列发送一个无效(invalidate)请求。UI
2014-06-26 16:09:09
342
原创 android JNI学习-Android.mk文件详解
Android.mk是Android提供的一种makefile文件,用来指定诸如编译生成so库名、引用的头文件目录、需要编译的.c/.cpp文件和.a静态库文件等。要掌握jni,就必须熟练掌握Android.mk的语法规范。一、Android.mk文件的用途一个android子项目中会存在一个或多个Android.mk文件1、单一的Android.mk文件直接参考NDK的sampl
2014-06-26 16:00:38
646
原创 android JNI学习-接口-函数-JNI签名类型定义
android中很多Java类都具有native接口,这些接口由本地实现,然后注册到系统中。 主要的JNI代码放在以下的路径中:frameworks/base/core/jni/,这个路径中的内容被编译成库libandroid_runtime.so,被放置在目标系统的/system/lib目录下。此外,android还有其他的JNI库。JNI中的各个文件,实际上就是普通的C++源文件.
2014-06-26 15:56:54
1104
原创 注册native函数的两种方式
注册native函数有两种方法:静态注册和动态注册。1、静态注册方法根据函数名找到对应的JNI函数:Java层调用函数时,会从对应的JNI中寻找该函数,如果没有就会报错,如果存在则会建立一个关联联系,以后在调用时会直接使用这个函数,这部分的操作由虚拟机完成。静态方法就是根据函数名来遍历java和jni函数之间的关联,而且要求jni层函数的名字必须遵循特定的格式,其缺点在于:1)
2014-06-26 15:50:15
864
原创 jni中的日志输出到LOGCAT
在Java环境下使用JNI时可以方便的使用printf函数打印信息,在Eclipse控制台Console视图可以方便的观察到,可在Android环境下使用JNI的话,printf函数就无效了,LogCat视图和Console视图里看不到任何输出.但在android编程java代码中,我们使用Log.v等一些将日志输出到logcat,在LogCat视图中可以看到日志输出信息。android ND
2014-06-26 15:45:13
2112
转载 uint8_t是什么
在nesc的代码中,你会看到很多你不认识的数据类型,比如uint8_t等。咋一看,好像是个新的数据类型,不过C语言(nesc是C的扩展)里面好像没有这种数据类型啊!怎么又是u又是_t的?很多人有这样的疑问。论坛上就有人问:以*_t结尾的类型是不是都是long型的?在baidu上查一下,才找到答案,这时才发觉原来自己对C掌握的太少。那么_t的意思到底表示什么?具体的官方答案没有找到,不过我觉得有
2014-06-26 13:32:58
9600
原创 NDK 和 JNI区别和联系
NDK(Native Development Kit)“原生”也就是二进制android常用的开发方式是java封装的库,而这些库的底层实现是由C/C++实现,如媒体,图形库等java调用这样实现就需要用JNI(Java Native Interface)平时用的也就是google给我们封装的好的库,即便是底层实现用的不是Java,但都有统一的Java接口而NDK的作用
2014-06-25 13:36:38
452
原创 android中的JNI
Android.mk是Android提供的一种makefile文件,用来指定诸如编译生成so库名、引用的头文件目录、需要编译的.c/.cpp文件和.a静态库文件等。要掌握jni,就必须熟练掌握Android.mk的语法规范。一、Android.mk文件的用途一个android子项目中会存在一个或多个Android.mk文件1、单一的Android.mk文件直接参考NDK的sam
2014-06-25 13:35:01
316
翻译 JNI函数语法
一、对照表Java类型 本地类型 描述boolean jboolean C/C++8位整型byte jbyte C/C++带符号的8位整型char jchar C/C++无符号的16位整型short jshort C/C++带符号的16位整型in
2014-06-25 13:11:28
1090
原创 FFMpeg框架代码简单梳理
简介 FFmpeg是一个集录制、转换、音/视频编码解码功能为一体的完整的开源解决方案。FFmpeg的开发是基于Linux操作系统,但是可以在大多数操作系统中编译和使用。FFmpeg支持MPEG、DivX、MPEG4、AC3、DV、FLV等40多种编码,AVI、MPEG、OGG、Matroska、ASF等90多种解码. TCPMP, VLC, MPlayer等开源播放器
2014-06-25 09:37:43
640
原创 FFMPEG解码流程
FFMPEG解码流程: 1. 注册所有容器格式和CODEC: av_register_all() 2. 打开文件: av_open_input_file() 3. 从文件中提取流信息: av_find_stream_info() 4. 穷举所有的流,查找其中种类为CODEC_TYPE_VIDEO 5. 查找对应的解码器: avcodec_find_decoder()
2014-06-23 16:08:03
735
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人