摘要: 转载请注明出处:http://www.blogjava.net/zh-weir/arch...29/362294.html Android类动态加载技术 Android应用开发在一般情况下,常规的开发方式和代码架构就能满足我们的普通需求。但是有些特殊问题,常常引发我们进一步的沉思。我们从沉思中产生顿悟,从而产生新的技术形式。 如何开发一个可以自定义控件的Android应用?就像eclipse一样,可以动态加载插件;如何让Android应用执行服务器上的不可预知的代码?如何对Android应用加密,而只在执行时自解密,从而防止被破解?…… 熟悉Java技术的朋友,可能意识到,我... 阅读全文
posted @ 2012-11-22 22:54 GreyWolf 阅读(246) 评论(0) 推荐(0) 编辑
摘要: 说明:由于最近很忙,老项目被砍掉,新项目刚立项。加之NDK的文章网上已有不少。因此,这一篇文章转自网络。原文链接在此: 《Android: NDK编程入门笔记》APK反破解之三:NDK编译.so动态库为何要用到NDK?前段时间,工作中需要用android的应用程序访问android的根文件系统中的文件,但是由于应用程序的权限限制,无法访问这些文件,怎么办? 所以这就要用到了NDK编程了,既用C/C++代码实现访问系统文件,并将其生成本地库,供android中的java代码调用,这样就可以在java代码中通过调用C/C++编写的库的接口来实现对系统文件的访问。下面就介绍下Android NDK的 阅读全文
posted @ 2012-11-22 22:52 GreyWolf 阅读(482) 评论(0) 推荐(0) 编辑
摘要: Android APK 签名比对 发布过Android应用的朋友们应该都知道,Android APK的发布是需要签名的。签名机制在Android应用和框架中有着十分重要的作用。 例如,Android系统禁止更新安装签名不一致的APK;如果应用需要使用system权限,必须保证APK签名与Framework签名一致,等等。在《APK Crack》一文中,我们了解到,要破解一个APK,必然需要重新对APK进行签名。而这个签名,一般情况无法再与APK原先的签名保持一致。(除非APK原作者的私钥泄漏,那已经是另一个层次的软件安全问题了。) 简单地说,签名机制标明了APK的发行机构。因... 阅读全文
posted @ 2012-11-22 22:21 GreyWolf 阅读(653) 评论(0) 推荐(0) 编辑
摘要: 转载请注明出处:http://www.blogjava.net/zh-weir/arch...12/354190.html Android Java混淆(ProGuard)ProGuard简介 ProGuard是一个SourceForge上非常知名的开源项目。官网网址是:http://proguard.sourceforge.net/。 Java的字节码一般是非常容易反编译的。为了很好的保护Java源代码,我们往往会对编译好的class文件进行混淆处理。ProGuard的主要作用就是混淆。当然它还能对字节码进行缩减体积、优化等,但那些对于我们来说都算是次要的功能。 引用ProGuard官方的. 阅读全文
posted @ 2012-11-22 22:08 GreyWolf 阅读(385) 评论(0) 推荐(0) 编辑
摘要: 本次教程的最终目的是“偷龙转凤”,通过修改Android客户端让其发表的微博显示“来自iPhone客户端”iPhone多火呀!用iPhone多有面子呀!呵呵第一件事还是准备好所需要的工具。工欲善其事,必先利其器!【手机一部】当然必须是Android系统的【新浪微博Android客户端】有了手机当然也要有客户端安装文件了,下载地址:http://t.sina.com.cn/mobile/android.php【JDK】后面要用到一些Java程序,所以必须安装Java环境我这里装的1.6版,下载地址:http://www.java.net/download/jdk6/6u10/promoted/b 阅读全文
posted @ 2012-11-22 22:02 GreyWolf 阅读(383) 评论(0) 推荐(0) 编辑
摘要: 由于智能手机的普及,手机病毒逐渐走上前台,病毒的地下产业链也逐渐注意到这一块。总体来说,目前的手机病毒不像PC病毒那样(初期的pc病毒主要是为了显示黑客的个人能力)。手机病毒的初衷很简单,主要是为了窃取隐私和获取经济利益。 下面就简单的介绍一个android平台上手机病毒分析的大体流程,首先我们经常用到的两款工具是apktool和jd-gui,这两款工具是分析的利器。 当我们拿到一个安卓平台样本的时候,最先需要考虑的是获取他的文件的结构,apk包我们可以利用解压工具解压出来。不少的样本在加压之后我们可以在其中的解压文件中找到elf,so,apk等格式的文件,其中elf,so是... 阅读全文
posted @ 2012-11-22 21:57 GreyWolf 阅读(562) 评论(0) 推荐(0) 编辑
摘要: 本篇将给您介绍”Autorelease Pools”(自动释放池)在应用中的使用技巧。1,Autorelease Pools概要一个”Autorelease Pool”实例中“包含”其它各种调用了”autorelease”方法的对象。当它释放时,其中所有被管理对象都会收到”relrease”的消信。注意,同一个对象可以被多次调用”autorelease”方法,并可以放到同一个”Autorelease Pool”中。引入这个自动释放池机制,对象的”autorelease”方法代替”relrease”方法可以延长它的生命周期,直接到当前”Autorelrease Pool”释放。如果想让此对象的生 阅读全文
posted @ 2012-11-22 12:40 GreyWolf 阅读(156) 评论(0) 推荐(0) 编辑
摘要: @try{ Statements } @catch(NSException*ex) { UIAlertView *alert = [[UIAlertView alloc] initWithTitle:[ex name] message:[ex reason] delegate:selfcancelButtonTitle:@"OK"otherButtonTitles: nil]; [alert show]; } 阅读全文
posted @ 2012-11-22 12:32 GreyWolf 阅读(132) 评论(0) 推荐(0) 编辑
摘要: #include <stdio.h>#include <stdlib.h>#define mSIZE 3#define pSIZE 8static int memery[mSIZE] = {0};static int process[pSIZE] = {0};//static int process[pSIZE] = {2,3,2,1,5,2,4,5,3,2,5,2};//static int process[pSIZE] = {7,10,1,2,10,3,10,4,2,3,10,3,2,1,2,10,1,7,10,1};void build(); //生成一个随机数序 阅读全文
posted @ 2012-11-22 11:59 GreyWolf 阅读(247) 评论(0) 推荐(0) 编辑
摘要: 常见问题解答ARC的机制是什么?它在那里放入retain/release函数调用?请停止思考这些问题,把更多的精力放在下面的问题上,比如你的程序逻辑,对象的强,弱引用,对象的所属关系,可能的循环引用等问题上。我还需要为我的类写一个dealloc函数么?可能。因为ARC并不自动调用malloc/free,并不自动管理像核心功能对象、文件描述符等的生命周期,所以你仍然需要在dealloc中释放它们。你不会(实际上是不能)释放对象实例,但是你仍然需要为系统类调用[self setDelegate:nil]或其他ARC不会自动生产释放代码的情况下释放资源。dealloc方法在ARC不是必须的,并且不许 阅读全文
posted @ 2012-11-22 11:57 GreyWolf 阅读(200) 评论(0) 推荐(0) 编辑
摘要: 使用在函数参数转换的从属关键词当在函数调用的参数中使用Objective-C和基础核心实例的转换的时候,你需要告诉编译关于这个传入参数的所属信息。这些基础核心实例的所属规则定义在基础核心内存管理规则中(参考Memory Management Programming Guide for Core Foundation);Objective-C实例的规则定义在Advanced Memory Management Programming Guide.在下面的代码片段中,传入函数的CGGradientCreateWithColors的数组是需要转换的。byarrayWithObjects:函数返回的实 阅读全文
posted @ 2012-11-22 11:56 GreyWolf 阅读(219) 评论(0) 推荐(0) 编辑
摘要: 使用生存周期修饰符来避免强引用环你可以使用这些生存周期修饰符来避免强引用环。例如,如果程序中存在父类,子类,并且父类需要还有指向子类的指针,那么就有可能存在这样的引用环,反之亦然,那么你可以让父类中的指针是强类型,子类中指向父类的指针是弱类型。其他的情况需要更精巧的处理,特别是在块代码中的使用。在手动管理模式下,__block id x;对x的内存计数加一。在ARC模式下,__block id x;缺省的对x的内存计数加一。为了是这样的代码能够在ARC模式下能够继续工作,你可以使用__unsafe_unretained __block id x;. 就像__unsafe_unretained名 阅读全文
posted @ 2012-11-22 11:55 GreyWolf 阅读(199) 评论(0) 推荐(0) 编辑
摘要: 在IOS5中最新的特性要属ARC机制了,下面就来详细介绍下ARC:自动内存管理技术(Automatic Reference Counting (ARC))是一个为Objective-C提供内存自动管理的编译期技术。作为取代使用retain和release方式来管理内存的方式,ARC让你在其他代码编写方面可以放入更多精力。下图是两种管理内存方式的对比。概要说明ARC的原理是在编译期为每一个对象加入合适的代码,以期能否保证这些对象有合理的生命周期。从概念上来说,ARC通过增加retain,release和autorelease等函数,使得在维护内存计数器方面(相关资料Advanced Memory 阅读全文
posted @ 2012-11-22 11:54 GreyWolf 阅读(208) 评论(0) 推荐(0) 编辑
摘要: 今天给无线事业部的同事开发苹果客户端的推送接口。无线事业部就是我们公司专门开发各种终端的app的部门啦!无线事业部的同事做事还是很体贴的,同时发给了我参考文档地址和需要的开发需要的pl2文件。提供的文档里详细描述了推送原理以及相关申请的步骤和部分cocoa和.net代码片段,还提供开源的.net类库下载地址。非常感谢无线事业部的同事啦,o(∩_∩)o 哈哈提供的文档地址:http://hi.baidu.com/yang_qi168/item/480304c542fd246489ad9e91原文内容如下:Push的原理:Push的工作机制可以简单的概括为下图图中,Provider是指某个iPho 阅读全文
posted @ 2012-11-22 11:38 GreyWolf 阅读(203) 评论(0) 推荐(0) 编辑
摘要: 在object-c中,C语言的数组格式初始化和引用都能够用,但在object-c中不提倡使用。(1)不可变数组:NSArray初始化:NSArray*array=[[NSArray alloc] init];相同的初始化方法还有:initWithArray;initWithContentsOfFile;initWithContentsOfURL;initWithObjects;同样还可以通过如下方法创建一个数组:arrayWithArray;arrayWithContentsOfFile;arrayWithContentsOfURL;arrayWithObject;arrayWithObjec 阅读全文
posted @ 2012-11-22 01:04 GreyWolf 阅读(264) 评论(0) 推荐(0) 编辑
摘要: SAX解析器是在你的代码分析器通知作为遍历XML树,你是通过负责保持跟踪状态和建设的任何对象你可能想游行保持分析器跟踪的数据。DOM解析器读取整个文件,并建立了一个在内存中的表示,你可以查询不同的元素。 通常情况下,你甚至可以构建XPath查询退出特别件。1、NSXMLParser是一个SAX解析器SDK中包含的iPhone默认的。 这是写在Objective - C和使用非常简单,但也许没有那么容易,因为DOM模型。2、libxml2的是一个开放源码库,包括iPhone SDK的默认情况下使用。 这是一个基于C的API,所以有点更多的工作比使用NSXML。 该库同时支持DOM和SAX处理。 阅读全文
posted @ 2012-11-22 01:02 GreyWolf 阅读(249) 评论(0) 推荐(0) 编辑
摘要: Objective-C 中核心处理字符串的类是 NSString 与 NSMutableString ,这两个类最大的区别就是NSString 创建赋值以后该字符串的内容与长度不能在动态的更改,除非重新给这个字符串赋值。而NSMutableString 创建赋值以后可以动态在该字符串上更改内容与长度。NSString 常用方法总结+(id)stringWithContentsOfFile:path encoding:enc err创建一个新字符串并将其设置为 path 指定文件的内容,使用字符编码 enc,在err 上返回错误+(id)stringWithContentsOfURL:url e 阅读全文
posted @ 2012-11-22 01:01 GreyWolf 阅读(209) 评论(0) 推荐(0) 编辑
摘要: 转到(Go To)Control-F2到菜单Control-F3到Dock切换(Switch)Command-Tab在程序间切换Command-`在程序中的窗口间切换窗口(Window)Command-H隐藏Command-M最小化Command-N新建Command-O打开Command-P打印Command-Q退出Command-Q退出Command-W关闭F9显示所有程序打开的窗口F10显示当前打开的窗口F11隐藏所有窗口并显示桌面文件(File)Command-S保存Command-Shift-S另存为Command-Shift-N新建文件夹Command-I简介Command-Opt 阅读全文
posted @ 2012-11-22 00:59 GreyWolf 阅读(199) 评论(0) 推荐(0) 编辑
摘要: 1. 文件CMD + N: 新文件CMD + SHIFT + N: 新项目CMD + O: 打开CMD + S: 保存CMD + SHIFT + S: 另存为CMD + W: 关闭窗口CMD + SHIFT + W: 关闭文件2. 编辑CMD + [: 左缩进CMD + ]: 右缩进CMD + CTRL + LEFT: 折叠CMD + CTRL + RIGHT: 取消折叠CMD + CTRL + TOP: 折叠全部函数CMD + CTRL + BOTTOM: 取消全部函数折叠CTRL + U: 取消全部折叠CMD + D: 添加书签CMD + /: 注释或取消注释CTRL + .: 参数提示E 阅读全文
posted @ 2012-11-22 00:58 GreyWolf 阅读(190) 评论(0) 推荐(0) 编辑
摘要: iOS的分析工具可以发现编译中的warning,内存泄漏隐患,甚至还可以检查出logic上的问题;所以在自测阶段一定要解决Analyze发现的问题,可以避免出现严重的bug;内存泄漏隐患提示:Potential Leak of an object allocated on line ……数据赋值隐患提示:The left operand of …… is a garbage value;对象引用隐患提示:Reference-Counted object is used after it is released;以上提示均比较严重,可能会引起严重问题,需要开发者密切关注!方法:xcode---- 阅读全文
posted @ 2012-11-22 00:57 GreyWolf 阅读(253) 评论(0) 推荐(0) 编辑