Android Reverse Engineering System Native Apps
之前写过一篇关于反编译 android 软件的总结,不过那是针对一些第三方应用的。针对系统应用,需要一些“特殊”的办法。 Why odex? 在 android 系统中,所有的系统级软件都被分解成了两个文件,而不是单纯的“apk file”。以图库为例,在 /system/app 下可见 “Gallery2.apk”和“Gallery2.odex” 两个文件。至于为什么要这样分解,下面这段...
之前写过一篇关于反编译 android 软件的总结,不过那是针对一些第三方应用的。针对系统应用,需要一些“特殊”的办法。 Why odex? 在 android 系统中,所有的系统级软件都被分解成了两个文件,而不是单纯的“apk file”。以图库为例,在 /system/app 下可见 “Gallery2.apk”和“Gallery2.odex” 两个文件。至于为什么要这样分解,下面这段...
在 Android 开发中,处理 Bitmap 一向需要小心翼翼,因为这块一旦弄得不好的话,轻者会造成应用卡顿,严重地会直接 OOM 或导致 ANR。今天在重构毕业设计引导界面时,使用了一个简单的优化技巧,使得应用的启动性能有了相当明显的改善。 这个页面的 ViewPager 所带动的 Fragment 的布局里含有一个 ImageView,原来在 Fragment 里加载图片时是这么处理...
Instruction 今天晚上在复习 Java 时对接口回调这一部分看得晕乎乎的,看了好几篇博客,写了几个例子之后,我想把自己的理解提炼出来。 Def 回调方法:必须由程序员来实现,但不能由程序员来直接调用,而是必须由其他方法在满足调用条件时去调用的。 Example 概念总喜欢把通俗易懂的东西变得让人摸不着头脑。通俗一点的理解,Java 里的接口回调,就是A类调用B类里的方法C(方法...
今天在项目中遇到一个问题,解决后发现也加深了我对 AIDL 的理解,果然知识到了一定水平之后确实是融会贯通的! 先看服务端的代码: ObjectOutputStream oos = new ObjectOutputStream(socket.getOutputStream()); User user = new User(); user.setName("linshen"); oos.wr...
Description XAMPP 安装后,执行 sudo /opt/lampp/lampp start 返回 XAMPP: Another web server daemon with SSL is already running.并提示 Apache 启动失败,但 MySql 等其他组件的启动正常。 Solution Linux 下 Apache 启不来是一个非常典型的问题,解决方法也...
如果要让项目里所有 ActionBar 样式统一,我们需要重写一下 style.xml Android 4.0 起的工程一般会默认使用 AppTheme 这个主题,它继承自 AppBaseTheme,我们可以在style.xml 中看到如下代码: <style name="AppBaseTheme" parent="android:Theme.Light"> </styl...
What is Volley? Volley is a library that makes networking for Android apps easier and most importantly, faster. 在 Google I/O 2013, Google 介绍了这个高大上的玩意儿。作为 Apache 的 HttpClient 解决方案的又一选择, Volley ...
Introduction 在 Android 开发过程中,我们无法直接将一个对象的引用传给 Activity 或者 Fragment,而必须将其放在 Bundle 或者 Intent 中。通过最近的实践,我发现 Android 并未在 Bundle 或者 Intent 中对 Java 的一些数据封装方式进行良好的支持。比如,当需要使用 Intent 传递一个 ArrayList 时,Inte...
什么,你是写UI的? 很多人在 android 开发过程中看不起布局优化工作,觉得布局工作是一件 low 爆了的工作,完全体现不出码农那种牛逼轰轰的优越感。我也曾因为“长期处于‘Layout’层”被 team 里干“上层”的队友嘲笑过不会写代码。而事实真的是这样吗? 要知道,一款“如丝般顺滑”的软件,流程自然是有它的道理的。比如我的偶像,新浪微博第三方客户端 Fuubo 的开发者 @碎星...