- 博客(94)
- 收藏
- 关注
原创 11 个 Visual Studio 代码性能分析工具
软件开发中的性能优化对程序员来说是一个非常重要的问题。一个小问题可能成为一个大的系统的瓶颈。但是对于程序员来说,通过自身去优化代码是十分困难的。幸运的是,有一些非常棒的工具可以帮助程序员进行代码分析和性能测试,从而大大简化程序员进行代码性能优化的过程。MSDN 杂志 2011 年 7 月份曾发布主题为“.NET 代码分析工具和技术”的那一期,让广大程序员收获颇丰。四年过去之后,这些工具又进一步做出了很多改进,同时也出现了更多的选择。
2015-07-23 15:08:30
7970
原创 面试宝典之基本的C#面试问答
下文是125个基本的C#面试问答清单。这些面试问题简单、直接了当,涵盖了C#最基本的概念,大部分和面向对象的概念相关。所以如果你在准备C#面试,我建议你必须掌握这125个基本的C#面试问答来复习你的C#概念。那么现在来看看这125个基本的C#面试问答清单吧。1. 什么是C#?C#(发音”C sharp”)是一种简单、有别于传统的、面向对象、类型安全的编程语言。C和C++程序员很快就
2015-07-16 14:34:15
5206
翻译 最牛B的编码套路
最近,我大量阅读了Steve Yegge的文章。其中有一篇叫“Practicing Programming”(练习编程),写成于2005年,读后令我惊讶不已:与你所相信的恰恰相反,单纯地每天埋头于工作并不能算是真正意义上的锻炼——参加会议并不能锻炼你的人际交往能力;回复邮件并不能提高你的打字水平。你必须定期留出时间,集中锻炼,这样才能把事情做得更好。我认识很多杰出的程序员——这
2015-07-15 10:26:00
1633
2
转载 移动应用加密工具解析
移动互联网的普及,越来越多的移动应用陷入安全门,各种信息泄露、盗号风波层出不穷。越来越多的黑客盯上了移动应用,而SD 卡中以明文存放的个人信息,数据库中未加密存储的用户名和密码,收集的分析并以明文方式发到远程服务器,这些情况都使得黑客攻击更容易。 正确使用Cryptography 工具,能保护我们的敏感数据,确保隐私和数据完整。另一方面,加密难用且容易误用。这里给大家推荐下目
2015-07-14 10:23:41
1026
原创 Objective-C对象模型及应用
本文主要介绍Objective-C对象模型的实现细节,以及Objective-C语言对象模型中对isa swizzling和method swizzling的支持。希望本文能加深你对Objective-C对象的理解。ISA指针
2015-07-08 10:51:20
1247
转载 手游安全破“黑”行动:向黑产业链说NO
目前的手游市场已被称为红海。从业界认为的2013年的“手游元年”至今,手游发展可谓是既经历了市场的野蛮生长,也有百家争鸣的战国时代。如今,手游市场竞争已趋白热化,增长放缓。但移动互联网的发展大势之下,手游的市场规模绝不仅于此。在这一过程中,我们不得不思考的是,手游未来发展的前景和阻碍在哪里?移动互联的背景下,手游安全这一问题如何得到保障?整个行业生态链上的各方又应该如何联手将市场“蛋糕”做大做好,
2015-07-03 14:40:29
601
转载 Android数据库高手秘籍:SQLite命令
要想熟练地操作任何一个数据库,最最基本的要求就是要懂SQL语言,这也是每个程序员都应该掌握的技能。虽说SQL博大精深,要想精通确实很难,但最基本的一些建表命令,增删改查,大家还是必须要学会的。SQL(Structured Query Language)是一种标准的数据库查询语言,即所有的关系型数据库都会支持它,只不过每种数据库对SQL语言的支持与标准存在着细微的不同。我们无须关心其它数据库对S
2015-07-01 10:04:21
662
原创 打造一个全命令行的Android构建系统
IDE都是给小白程序员的,大牛级别的程序员一定是命令行控,终端控,你看大牛都是使用vim,emacs 就一切搞定”这话说的虽然有些绝对,但是也不无道理,做开发这行要想效率高,自动化还真是缺少不了命令行工具,因为只有命令行才是最佳的人机交互工具。其实IDE也是底层也是调用命令行工具而已,只不过给普通开发者呈现一个更友好的开发界面。这里可不是宣扬让大家放弃IDE都改命令行,只是每种事物都有他存在的理由,无论是编程语言还是工具都是一个原则 “没有最好的,只有最合适的”。
2015-06-29 10:47:21
2017
原创 Android内存泄漏分析实战
内存泄漏简介java可以保证当没有引用指向对象的时候,对象会被垃圾回收器回收,与c语言自己申请的内存自己释放相比,java程序员轻松了很多,但是并不代表java程序员不用担心内存泄漏。当java程序发生内存泄漏的时候往往具有隐蔽性。
2015-06-26 09:56:54
1476
1
翻译 8个超实用的Java测试工具和框架
Java入门如果你才刚开始接触Java世界,那么要做的第一件事情是,安装JDK——Java Development Kit(Java开发工具包),它自带有Java Runtime Environment(JRE)和JVM(Java运行时环境)。它能让你在自己的电脑上编译、运行、测试你的Java程序。此外,你还需要IDE(集成开发环境)。选择有很多,如IntelliJ、Eclipse和NetBeans。Java测试工具
2015-06-24 10:08:54
4005
翻译 MySQL性能优化的21条最佳经验
今天,数据库的操作越来越成为整个应用的性能瓶颈了,这点对于Web应用尤其明显。关于数据库的性能,这并不只是DBA才需要担心的事,而这更是我们程序员需要去关注的事情。当我们去设计数据库表结构,对操作数据库时(尤其是查表时的SQL语句),我们都需要注意数据操作的性能。这里,我们不会讲过多的SQL语句的优化,而只是针对MySQL这一Web应用最多的数据库。希望下面的这些优化技巧对你有用。0. 为查询缓存优化你的查询
2015-06-18 10:34:39
951
翻译 编程面试的10大算法概念汇总
以下是在编程面试中排名前10的算法相关的概念,我会通过一些简单的例子来阐述这些概念。由于完全掌握这些概念需要更多的努力,因此这份列表只是作为一个介绍。本文将从Java的角度看问题,包含下面的这些概念:1. 字符串2. 链表3. 树4. 图5. 排序6. 递归 vs. 迭代7. 动态规划8. 位操作9. 概率问题10. 排列组合
2015-06-17 10:24:14
1057
原创 Android内存优化之封装九宫格
随着市场上越来越多的APP上线,好多软件对手机的内存要求也是很大,所以我们在开发的时候一定要掌握如何去优化内存,将自己的APP尽可能优化。今天我们就一起看一下九宫格的优化。下面是软件的截图
2015-06-16 10:20:45
836
原创 Android Java 程序员必备开发工具
对于Java,有两种截然不同的观点:一种认为Java是最简单功能最强大的编程语言之一,另一种则表示这种编程语言既难用又复杂。下面这些工具或许功能和作用不同,但是有着一个共同的主旨,那就是——它们都是为了给Java编码和开发提供卓越的支持。1. JDK(Java开发工具包)如果你打算用Java开发一些小程序和应用程序,那么首先得给自己准备一个类似于JDK的工具,其中包括必要的Java Complier、Java Runtime Environment(JRE)和Java API。这是开始Java之
2015-06-11 10:57:18
1032
翻译 如何成为一个通晓多种编程语言的程序员
学习一门新的语言是一种冒险。我总是热衷于尝试新的东西——学习新的语法,了解不同的模式,乃至彻底改变思维方式。不幸的是,许多开发人员对此不以为然,甚至可能是深恶痛绝的——学习新语言,就得走出舒适区,花时间花精力来学习新的理念和方法。这段日子,我每天都要用大约5种不同的语言来写不同的项目!
2015-06-10 10:11:45
1541
原创 8大排序算法图文讲解
排序算法可以分为内部排序和外部排序,内部排序是数据记录在内存中进行排序,而外部排序是因排序的数据很大,一次不能容纳全部的排序记录,在排序过程中需要访问外存。常见的内部排序算法有:插入排序、希尔排序、选择排序、冒泡排序、归并排序、快速排序、堆排序、基数排序等。本文将依次介绍上述八大排序算法。 算法一:插入排序 插入排序示意图插入排序是一种最简单直观的排序算法,
2015-06-05 10:17:00
1304
2
原创 Android酷炫实用的开源框架(UI框架)
Android酷炫实用的开源框架(UI框架)1.Side-Menu.Android分类侧滑菜单项目地址:
2015-06-04 10:02:08
1600
原创 Android开源git40个App源码
(JamsMusicPlayer)很棒的音乐播放器(new) (F8)日程安排的软件 (Conversations)基于XMPP的应用 (Bitocle)可以在手机上查看自己github上的项目 (Amphitheatre)Android TV应用,数据来源于TMDb,没看运行效果,但感觉有JakeWharton参与的
2015-06-03 10:04:08
3253
1
原创 Android动态加载字节码
概述面对App业务逻辑的频繁变更,如果每一次改变都对App进行一次升级,会降低App的用户体验,那么App进行模块化升级(这里与增量升级是不同的)是很好的解决方案,让用户在完全无感觉的情况下改变App中的业务逻辑。要实现这种模块化升级,动态加载字节码(jar/dex)就是实现这个需求的理论基础。Android系统加载字节码Android的虚拟机(Dalvik VM)无法识别
2015-06-02 09:35:34
1605
原创 利用无效字节码指令引发逆向工具崩溃(二)
上一节我们介绍了一种利用无效字节码指令引发逆向工具崩溃的方法。(http://blog.csdn.net/lz201234/article/details/46004573)可惜的是大部分反编译工具已经修复了该bug。但是如果我们插入有效的字节码指令,但是后跟无效的数据引用,结果会是怎么样呢? 使用C32asm,以十六进制的方式打开dex文件。按快捷键“Ctrl + G”,定位到“0003A2A4”把“62 00 02 04 1A 01 8E 07 6E 20 19 10 10 00”改为
2015-05-28 09:41:56
1485
翻译 做个犀利的码农:如何持续培养/更新自己的开发技能
我们的圈子,改变是生存的必备要素之一。计算机领域一直在改变,从基础框架到计算设备,还有几乎每天都涌现出的新技术,这些要求我们必须持续学习新东西。这里将介绍一些技巧,以使你可以在这从未停止的学习之旅更加轻松。如何选择读物 程序员需要的技能改变是如此之快,尤其是那些热点的/快速演变的领域,比如本博关注的那些领域,还有移动开发等。找到这些领域合适的阅读材料有时不那么容易。两点建议:1.利用好关注该类技术的那些网站。比如,在我学习iOS的过程中,我一直关注 RayWenderlish.com 和
2015-05-27 10:11:29
1338
原创 利用无效字节码指令引发逆向工具崩溃(一)
由于大部分逆向工具都是线性读取字节码并解析,当遇到无效字节码时,就会引起反编译工具字节码解析失败。 我们可以插入无效字节码到DEX文件,但要保证该无效字节码永远不会被执行(否则您的程序就会崩溃了!)。 首先我们新建一个测试类。为了绕过Dalvik运行时代码验证,BadCode.java要保证不被调用。(否则运行app,会出现java.lang.verifyerror异常)
2015-05-26 10:23:19
2085
原创 如何用一次性密码通过 SSH 安全登录 Linux
有人说,安全不是一个产品,而是一个过程。虽然 SSH 协议被设计成使用加密技术来确保安全,但如果使用不当,别人还是能够破坏你的系统:比如弱密码、密钥泄露、使用过时的 SSH 客户端等,都能引发安全问题。
2015-05-25 10:13:04
2126
原创 完整全面的Java资源库(包括构建、操作、代码分析、编译器、数据库、社区等等)
构建这里搜集了用来构建应用程序的工具。Apache Maven:Maven使用声明进行构建并进行依赖管理,偏向于使用约定而不是配置进行构建。Maven优于Apache Ant。后者采用了一种过程化的方式进行配置,所以维护起来相当困难。Gradle:Gradle采用增量构建。Gradle通过Groovy编程而不是传统的XML声明进行配置。Gradle可以很好地配合Maven进行依
2015-05-20 09:59:36
2848
原创 细说程序员最后归宿
中学政治学科的课堂上,辩证唯物主义告诉我们,任何事物都包含着既对立又统一的两个方面。要如实的反映事物的本来面目,就必须坚持一分为二的矛盾分析法,对矛盾作全面的分析要运用两分法、两点论去认识事务的本质。简单的意思就是,万事万物都要看到它好的一面和不好的一面。 IT也是如此,程序员的职业也是如此。“程序员的最后归宿是什么!”、“程序员为什么到了30或35就会想要转行”、“边缘化的IT人”等等诸如此类的话题漫天遍野,“程序员吃的就是口青春饭”如一根刺隐隐的扎在了程序员心头肉上。这已成为程序员们深思的职
2015-05-19 10:01:16
4061
原创 如何检查 Android 应用的内存使用情况
Android是为移动设备而设计的,所以应该关注应用的内存使用情况。尽管Android的Dalvik虚拟机会定期执行垃圾回收操作,但这也不意味着就可以忽视应用在何时何处进行内存分配和释放。为了提供良好的用户体验,做到系统在不同应用间流畅切换,当用户和应用无交互时,避免应用不必要的内存消耗是很重要的。尽管在开发过程中很好的遵守了《管理应用内存》(Managing Your App Memory )中的原则(也是应该遵守的),仍然可能会有对象泄露或引入其他的内存bug。
2015-05-18 09:47:56
4457
1
原创 程序员应该学习的签名破解
我们以“XXXX管家”为例,该apk使用了签名保护。我们对apk二次打包后,程序无法运行。原因是程序运行时会获取当前应用签名和官方签名进行对比。如果发现不一致就会终止程序。关于如何防止apk被二次打包请移步:http://blog.csdn.net/lz201234/article/details/45073029 http://t.cn/Rz0bhUA 下面我们对签名保护进行破解 首先我们需要用到的工具是APK改之理。百度云盘下载:http://pan.baidu.com/share/link
2015-05-13 10:36:20
3184
2
原创 Android 最火的快速开发框架XUtils
最近搜了一些框架供初学者学习,比较了一下XUtils是目前git上比较活跃 功能比较完善的一个框架,是基于afinal开发的,比afinal稳定性提高了不少,下面是介绍: xUtils简介xUtils 包含了很多实用的android工具。xUtils 最初源于Afinal框架,进行了大量重构,使得xUtils支持大文件上传,更全面的http请求协议支持(10种谓词),拥有更加灵活的ORM,更多的事件注解支持且不受混淆影响...
2015-05-12 10:01:34
1925
2
原创 游戏开发性能优化经验总结
优化概论说起游戏的优化,在游戏开发中经常分为这几步:首先要确定游戏中经常会出现哪些问题 – Profile然后确定在哪些方向进行性能优化 – Analyze最后再尽可能将问题逐个解决 – Solve游戏开发中一定是先做工具,进行Profile,再进行优化,所以,说优化就不得不再扯一下Profile常见的工具有一些是引擎和IDE自带的,比如Unity自带的Profiler,就包含了CPU,GPU,Memory等等各式各样的性能分析工具,其他的比如GPA,Xcode Instrument和Vi
2015-05-11 09:28:19
2739
1
转载 护航手游安全:爱加密将参展2015广州国际游博会
“弘扬游戏主旋律,激发娱乐正能量”——2015第四届广州国际游戏博览会(简称:gzgameshow2015)暨第二届手游开发者大会将在2015年5月9日到11日震撼登场。gzgameshow2015通过各政府职能部门、行业协会、媒体携手合作共同打造华南最大最具影响力的游戏博览会,预计展览面积30000平方米,四场国际性游戏行业论坛,参观人数达到100000人次,国内专业观众7000人次,国际专业观
2015-05-09 15:16:14
775
原创 APK反编译去广告大揭秘
具体步骤:1.下载 apktool 下载地址:https://code.google.com/p/android-apktool/downloads/list2.通过apktool 反编译apk。命令行中输入以下命令:apktool.bat d -f aaa.apk(apk路径) 反编译APK文件3.开始修改XML布局文件首先,我们进入反编译后的文件夹,以我的为例进入 C:\apk\com.youmi.android.sample\res\layout 目录下用记事本打开
2015-05-04 09:56:12
4567
3
原创 安卓中如何实现滑动导航
导航是移动应用最重要的方面之一,对用户体验是良好还是糟糕起着至关重要的作用。好的导航可以让一款应用更加易用并且让用户快速上手。相反,糟糕的应用导航很容易让人讨厌,并遭到用户的抛弃。为了打造流畅的用户导航体验,我们不得不依赖智能手机最常见的一个功能:触摸。触摸改变应用程序的视图是现在最流行一种导航设计。在本博客中,我们将经过必要的几步来实现应用内的横向滑动导航。本文毫无迟疑地使用了代码优先的方法 。让我们看一下滑动导航需要完成的主要代码片段。
2015-04-28 10:13:08
915
原创 不安全的直接对象引用:你的 ASP.NET 应用数据是否安全?
介绍作为一个在X94的航空工程师,你的老板要求你从2号楼的工程图中检索出一个特定的专利。不幸的是,进入大楼需要你出示你具有进入大楼的资格的证明,然后你迅速地以徽章的形式出示给了保安。到了十三楼,进入建筑师工程师图纸库要求通过他们的生物鉴定系统来验证你是你声称的那个人。最后在你的目的地,你提供给库管理员一串对你毫无意义的字母数字代码,但是在合适的人手上,它可以转换成哪里可以找的你需要的工程图
2015-04-27 10:37:55
995
原创 请不要让程序员在黑暗中摸索
不知道各位有没有玩过魔兽、X-COM、文明帝国、红色警戒之类的策略游戏。这些游戏使用了所谓的“战争迷雾”。刚进入游戏的时候,每一个玩家的地图都是被黑暗笼罩的,想要前行的唯一途径就是不断的摸索。随着我们不断地移动,地图越来越可见化。这种战略的劣势是:玩家看不到周围的危险、障碍以及机会。每一次的成功都需要一点点的运气。有木有感觉这种情景有点熟悉?“战争迷雾”完美
2015-04-22 10:00:09
1098
2
原创 10个关于Android开发的实用教程
本文为致力于Android应用的开发人员精选了几个不错的实用教程,无论是初学者还是专业开发人员都应该能够从中获益。这些教程中有不少是关于绘图和地址服务运用的,另外一些则是SDK相关的。希望对大家有所帮助。1. OpenGL ES 2.0这里展示了如何创建一个简单的Android应用程序,通过OPGL ES 2.0 API来实现一些基本的图形操作。
2015-04-20 10:36:20
1694
1
原创 APP防二次打包技术破解演示
Android系统的开放性和免费性等特征让开发者和用户趋之若鹜,用户也渐渐习惯了Android应用的这种免费午餐,但在免费的背后却有着巨大的安全阴影。 “Android APP二次打包”则是盗版正规Android APP,破解后植入恶意代码重新打包。不管从性能、用户体验、外观它都跟正规APP一模一样但是背后它确悄悄运行着可怕的程序,它会在不知不觉中浪费手机电量、流量,恶意扣费、偷窥隐私等等行为。 面对二次打包不少公司都有自己的防范措施,知名公司的APP几乎都是自己在程序内部做过
2015-04-16 11:39:29
3654
原创 Android中常见的热门标签的流式布局的实现
一、概述:在日常的app使用中,我们会在android 的app中看见 热门标签等自动换行的流式布局,今天,我们就来看看如何自定义一个类似热门标签那样的流式布局吧(源码下载在下面最后给出)类似的自定义布局。下面我们就来详细介绍流式布局的应用特点以及用的的技术点:1.流式布局的特点以及应用场景 特点:当上面一行的空间不够容纳新的TextView时候, 才开辟下一行的空间 原理图:
2015-04-14 10:22:29
13447
6
原创 为什么不能往Android的Application对象里存储数据
在一个App里面总有一些数据需要在多个地方用到。这些数据可能是一个 session token,一次费时计算的结果等。通常为了避免activity之间传递对象的开销 ,这些数据一般都会保存到持久化存储里面。有人建议将这些数据保存到 Application 对象里面,这样这些数据对所有应用内的activities可用。这种方法简单,优雅而且……完全扯淡。假设把你的数据都保存到Application对象里面去了,那么你的应用最后会以一个NullPointerException 异常crash掉。
2015-04-08 09:54:02
1844
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人