随笔分类 -  android

1 2 下一页

使用signal、setjmp、longjmp进行Linux/Android C异常处理
摘要:1 #include 2 #include 3 #include 4 #include 5 jmp_buf sigsegv_buf; 6 7 8 void sigsegv_callback(int sig_num){ 9 printf("recieve a segment fa... 阅读全文

posted @ 2015-01-21 10:31 rainduck 阅读(1172) 评论(0) 推荐(0)

浅析Android中ndk-build支持的参数
摘要:在解决Android Studio中编译native code出现的问题时,发现Android Studio使用了完整的ndk-build命令进行编译,参数众多。故在此做一个说明,以便大家可以根据偏好自行设定参数。ndk-build编译支持的参数:NDK_PROJECT_PATH 一般为nullAP... 阅读全文

posted @ 2014-12-22 01:17 rainduck 阅读(8151) 评论(0) 推荐(0)

arm上的参数列表传递的分析(以android为例)
摘要:1. Linux中可变列表实现的源码分析查看Linux0.11的内核源代码,对va_list, va_start, va_arg 的实现如下:va_list的实现没有差别,chartypedef char va_list;va_start的实现#define va_start(AP, LASTARG... 阅读全文

posted @ 2014-09-29 00:12 rainduck 阅读(1216) 评论(0) 推荐(0)

编译错误
摘要:incomplete type,invalid use of incomeplete type ...等问题可能是由于没有引入恰当的头文件,或者没有以恰当的顺序引入头文件。 阅读全文

posted @ 2014-09-12 21:55 rainduck 阅读(171) 评论(0) 推荐(1)

native method与so中function的关联
摘要:在Android中,可以通过JNI的方式来调用和访问用C/C++实现的代码,这些代码以SharedLibrary的方式存在于so中。从Java Code到Native Code的一般使用过程为:在Java中的某个类中调用System.loadLibrary(XXX)(对于ing的so的全名应为:li... 阅读全文

posted @ 2014-09-11 10:56 rainduck 阅读(2706) 评论(0) 推荐(0)

Java.lang.NoClassDefFoundError--找不到相应的类
摘要:如题Java.lang.NoClassDefFoundError 错误可能是由于找不到指定的类引起的。一般出现在java 反射调用,或者通过jniRegisterNativeMethods手动注册jni函数时引发的。特别需要主要对于内部类的处理:class A{ class B{ }}此时B是一... 阅读全文

posted @ 2014-09-10 01:11 rainduck 阅读(1190) 评论(1) 推荐(0)

JNI 函数注册与管理
摘要:class 一一对应so-->method 每个so对应于一个类对象类中的每个native方法对应 于so中的一个native的function,对应关系涉及 {clazz, "name", "Signature", func_addr} 参数jclazz描述的是要注册JNI方法的类,而参数m... 阅读全文

posted @ 2014-09-02 15:47 rainduck 阅读(1646) 评论(0) 推荐(0)

binder对于boolean类型的传递
摘要:通过写了一个AIDL文件,查看自动生成的java文件代码得出的结论:假如有: boolean loadNativeSharedLib(String libPathName);则对应的binder通信的实际操作为:写入:@Override public boolean loadNativeShared... 阅读全文

posted @ 2014-08-27 01:32 rainduck 阅读(544) 评论(0) 推荐(0)

Binder与interface
摘要:在Interface中,asBinder函数涌来将服务类接口类型转换为IBinder类型;相反的,asInterface函数用来将Ibinder类型转换为服务接口类型 阅读全文

posted @ 2014-08-18 20:42 rainduck 阅读(348) 评论(0) 推荐(0)

Binder与Servicede关联
摘要:Binder是Android上IPC的基础和关键。那么在使用过程中,大多数时候看到的是client与server的结构,即Server通过创建服务来向Client提供服务,Client则通过绑定到Binder对象从而开始通信。具体的binder对象的获取方式,也就与服务的调用方式相关了: 1.使用s... 阅读全文

posted @ 2014-08-17 01:14 rainduck 阅读(1624) 评论(0) 推荐(0)

InternalNative.cpp
摘要:1 /* 2 * Copyright (C) 2008 The Android Open Source Project 3 * 4 * Licensed under the Apache License, Version 2.0 (the "License"); 5 * you ... 阅读全文

posted @ 2014-08-12 15:13 rainduck 阅读(566) 评论(0) 推荐(0)

mac os x+paralles使用source insight
摘要:将Mac OS X下的目录共享到Paralles后,source insight创建工程。但是当再次打开时却打开失败。提示:there was an error opening project网上对此问题的介绍主要是针对Linux、Samba的,说:1. 权限问题,修改共享目录及其文件权限为读写执行... 阅读全文

posted @ 2014-05-10 11:07 rainduck 阅读(1617) 评论(0) 推荐(0)

jdk/java版本与Android源码编译中的错误
摘要:错误一:javap未指向有效的java版本Traceback (most recent call last): File "../../base/android/jni_generator/jni_generator.py", line 1065, in sys.exit(main(sys... 阅读全文

posted @ 2014-05-09 09:37 rainduck 阅读(10005) 评论(2) 推荐(0)

按需要对Androguard进行定制增强
摘要:按需对Androguard进行增强和定制修改Androguard是一个对android应用程序进行分析的基于python的平台,功能强大。但是在使用的过程中,提供的功能不一定如我们所需,所以需要进行额外的patch一下。例如,androguard只提供了函数show_Permissions(dx)来... 阅读全文

posted @ 2014-04-16 14:08 rainduck 阅读(1242) 评论(4) 推荐(0)

Android NDK生成共享库和静态库
摘要:Date: 2014-03-14Title: Compile Android Native Binary And LibraryPublished: trueType: postTags: Andoird, Develope在Android平台上,通过NDK可以编译NativeC程序,生成原生的NativeCode。从生成的代码的使用方式来看,主要有三种形式:Native Executable Binary, Shared Dynamic Library, 以及Static Link Library。接下来将分别介绍这三种类型的二进制文件的用途和生成时的MakeFile的设置。1. Stati 阅读全文

posted @ 2014-03-14 14:14 rainduck 阅读(11923) 评论(0) 推荐(1)

ARM指令中的函数调用
摘要:1. 重要寄存器SP 栈指针, 每一种异常模式都有其自己独立的r13,它通常指向异常模式所专用的堆栈,也就是说五种异常模式、非异常模式(用户模式和系统模式),都有各自独立的堆栈,用不同的堆栈指针来索引。这样当ARM进入异常模式的时候,程序就可以把一般通用寄存器压入堆栈,返回时再出栈,保证了各种模式下程序的状态的完整性LR 链接寄存器,一般用来存储返回地址;在执行BL或BLX等指令时,会自动存储下一条指令地址,即返回地址PC 程序计数器,存储将要执行的指令2. 程序跳转B ;--> PC,即跳转到labelBL ;将当前指令的下一条指令的地址存储到LR,然后跳转到label --> 阅读全文

posted @ 2014-03-04 17:21 rainduck 阅读(2034) 评论(0) 推荐(0)

ubuntu12.04下sun-java1.6-jdk配置
摘要:1. 下载安装2. 设置安装的默认程序$ sudo update-alternatives --install /usr/bin/java java /usr/lib/jvm/jdk1.7.0_21/bin/java 300$ sudo update-alternatives --install /usr/bin/javac javac /usr/lib/jvm/jdk1.7.0_21/bin/javac 300sudo update-alternatives --config javasudo update-alternatives --config javac 阅读全文

posted @ 2014-03-03 16:49 rainduck 阅读(414) 评论(0) 推荐(0)

使用WIFI连接android进行调试和adb操作
摘要:本人需要wifi连接android进行调试的原因主要是要经常用到IDA pro进行调试,但手头有的IDA Pro版本只是windows的,开发可能更多用Mac OS X了,来回拔插、调试很不方便,所以wifi连了之后,可以省事儿很多。设置方法源于此贴,具体如下:1. 手机端开启adb tcp连接端口:/$setprop service.adb.tcp.port 5555:/$stop adbd:/$start adbd其中setprop是用来设置系统属性的,这里不需要root权限,su即可。可通过adb shell设置,亦可通过手机上安装的Android terminal设置。2. 电脑端的设 阅读全文

posted @ 2014-03-02 19:34 rainduck 阅读(19793) 评论(0) 推荐(1)

Android NDK
摘要:很久之前做过android+jni+ndk的开发,但是现在都基本忘完了。所以稍微记录一下。1. Eclipse中创建Android工程,及相应的代码啥的2. 设置工程为支持Native code左栏右击工程名,然后选择“Android Tools”-->"Native Support"3. 在需要加... 阅读全文

posted @ 2014-02-28 17:30 rainduck 阅读(1318) 评论(0) 推荐(0)

Troubles in Building Android Source Code
摘要:Some Troubles or problems you may encounter while you setup the Android source code build environment on Ubutun 12.4.41. Install Sun-jdk1.6prompt:$ sudo apt-get install sun-java6-jdkReading package lists... DoneBuilding dependency tree Reading state information... DonePackage sun-java6-jdk is ... 阅读全文

posted @ 2014-02-26 15:14 rainduck 阅读(280) 评论(0) 推荐(0)

1 2 下一页

导航