Android端
文章平均质量分 74
每一个IT精英的知识都是从无到有,从点到面不断的积累的过程!本人从2010接触Android,5年的Android开发经验和大家分享,希望能为菜鸟的成长提供帮助!
常生果
技术达人、精通Java、大数据和机器视觉,爱好编程,喜欢创造!
邮箱:zhaohaiyang1988@aliyun.com
微信号:zhao1002298335
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
Android Studio2.1 NDK搭建
环境搭建主机:WIN8开发环境:Android Studio2.1.0 Preview 3 [Studio 2.2 配置稍微有些不同]ndk pr13 路径:C:\Users\zhy\AppData\Local\Android\sdk\android-ndk-r13配置环境变量增加一项:NDK_ROOT,如:C:\soft\adt-bundle-windows-原创 2016-10-11 18:25:41 · 752 阅读 · 0 评论 -
Android Data Binding 技术
Data Binding Data Binding即数据绑定,Data Binding 库实现在布局文件中实现数据绑定申明,使数据的变化引起视图的自动更新,减少了逻辑代码,在Android中可以很方便的实现MVVM的开发模式。 MVVM 了解MVVM之前,我们先简单说一下MVC、MVP模式。 MVC是Model(模型)---V转载 2016-07-08 14:41:24 · 390 阅读 · 0 评论 -
Android 多渠道打包:使用Gradle和Android Studio
转载请注明出处: http://blog.youkuaiyun.com/jjwwmlp456/article/details/45057067 ----------------- 匆忙拥挤repeatGradle,这个东西好复杂,不过在Android中,我们知道它大概怎么用,它的依据何来,就够了。Gradle的DSL,领域特定语言(domain-specific languages,转载 2016-07-08 14:48:45 · 498 阅读 · 0 评论 -
Android 中使用Lambda表达式
在Android Studio中使用Lambda表达式 Lambda表达式是在JDK 8中开始支持的一种函数式推导语言,能够大量减少匿名内部类那种冗余的代码。在Android中,可以大量使用在设置监听,设置异步回调等场景。 目前Android开发已经渐渐到从Eclipse 的ADT迁移到了Android Studio,但是Android Studio目前的版本还没有直接支持La转载 2016-07-12 16:34:42 · 544 阅读 · 0 评论 -
Android Sutido 编译速度优化
Android Sutido 编译速度优化虽然Android Studio 此时已经更新到了Android Studio 2.1版本,build 版本android-studio-bundle-143.2739321。但是在安装该版本都是根据自己的标准进行安装,所以需要在安装之后进行一系列的调整。下面文章根据3个方面进行讲解。分别为Android Studio本身、Gr转载 2016-07-06 15:29:38 · 1152 阅读 · 0 评论 -
最强 Android Studio 使用小技巧和快捷键
写在前面本文翻译自 Android Studio Tips by Philippe Breault,一共收集了62个 Android Studio 使用小技巧和快捷键。 根据这些小技巧的使用场景,本文将这62个小技巧分为常用技巧(1 – 28)、编码技巧(29 – 49)和调试技巧(50 – 62),分成三个部分。每个小技巧都配有 gif 动图,由于原图在 google pho转载 2016-10-12 14:14:21 · 435 阅读 · 0 评论 -
AndroidHook机制——VirtualApp
VirtualApp是一个开源的Android App虚拟化引擎,允许在其中创建虚拟空间,并在这个虚拟空间中运行其他应用。通过阅读源码及动态调试,基本了解了其运行原理,在此记录。本质Android应用隔离是基于Linux系统的多用户机制实现的,即每个应用在安装时被分配了不同的Linux用户uid/gid。而在VirtualApp中,client应用(通过VirtualApp安装的应用)与h...转载 2018-08-15 21:32:24 · 2500 阅读 · 0 评论 -
AndroidHook机制——ART
0x00 前言之前一直都是在Dalvik 虚拟机上在折腾,从Android 4.4开始开始引入ART,到5.0已经成为默认选择。而且最近看到阿里开源的 Dexposed 框架,已经提供了对于android art 模式下的 hook 支持,所以对照着android art 部分的源码和之前 liang 大牛放出了hook代码研究了一下ART模式下的hook原理,做个简单的整理。关于androi...转载 2018-08-15 22:01:35 · 1690 阅读 · 0 评论 -
AndroidHook机制——Hook技术原理
1. 什么是 HookHook 英文翻译过来就是「钩子」的意思,那我们在什么时候使用这个「钩子」呢?在 Android 操作系统中系统维护着自己的一套事件分发机制。应用程序,包括应用触发事件和后台逻辑处理,也是根据事件流程一步步地向下执行。而「钩子」的意思,就是在事件传送到终点前截获并监控事件的传输,像个钩子钩上事件一样,并且能够在钩上事件时,处理一些自己特定的事件。Hook 原理图...转载 2018-08-15 21:14:14 · 6378 阅读 · 0 评论 -
AndroidHook机制——浅谈
前言在测试android过程中,能对函数进行hook能帮助更加深入的进行测试,本文简单介绍了hook框架xposed和frida,从简单的小例子做了简单的演示,算是自己的学习的过程,是个入门的过程。 xposed框架 xposed,主页:http://repo.xposed.info/module/de.robv.android.xposed.installer是个开源的框架,...转载 2018-08-16 09:04:05 · 1779 阅读 · 0 评论 -
AndroidHook机制——Activity的启动过程的入侵拦截
这篇文章主要讲解如何利用动态代理技术Hook掉系统的AMS服务,来实现拦截Activity的启动流程。代码量不是很多,为了更容易的理解,需要掌握JAVA的反射,动态代理技术,以及Activity的启动流程。 如果对上面的知识点有些遗忘,建议按需扫读下面三篇文章,否则跳过。Java 反射 Java 动态代理机制分析及扩展,第 1 部分 深入理解Activity启动流程(三)–Activit...转载 2018-08-15 21:52:39 · 1075 阅读 · 0 评论 -
AndroidHook机制——YAHFA
在Android Dalvik时代,最流行的Hook框架非Xposed莫属了。各种功能强大的Xposed插件极大地丰富了Android的可玩性,而对于安全研究人员来说,hook则是应用逆向工作中的一项非常有效的手段。但是,进入到ART时代后,情况逐渐发生了变化。Xposed框架对系统进行了较大的改动,因此其安装适配难度显著提高;另一方面,随着近年来热修复技术的兴起,各大国内厂商也纷纷推出了自己...转载 2018-08-16 09:03:52 · 5034 阅读 · 0 评论 -
AndroidHook机制——应用换肤
Android系统使用了ClassLoader机制来进行Activity等组件的加载;apk被安装之后,APK文件的代码以及资源会被系统存放在固定的目录(比如/data/app/package_name/1.apk)系统在进行类加载的时候,会自动去这一个或者几个特定的路径来寻找这个类;但是系统并不知道存在于插件中的Activity组件的信息,插件可以是任意位置,甚至是网络,系统无法提前预知,因此正...转载 2018-08-15 21:56:57 · 1436 阅读 · 0 评论 -
AndroidHook机制——Hook动态代理实现插件化
使用代理机制进行API Hook进而达到方法增强是框架的常用手段,比如J2EE框架Spring通过动态代理优雅地实现了AOP编程,极大地提升了Web开发效率;同样,插件框架也广泛使用了代理机制来增强系统API从而达到插件化的目的。本文将带你了解基于动态代理的Hook机制。阅读本文之前,可以先clone一份 understand-plugin-framework,参考此项目的dynamic-pr...转载 2018-08-15 21:19:15 · 512 阅读 · 0 评论 -
AndroidHook机制——插件化之AMS&PMS
在前面的文章中我们介绍了DroidPlugin的Hook机制,也就是代理方式和Binder Hook;插件框架通过AOP实现了插件使用和开发的透明性。在讲述DroidPlugin如何实现四大组件的插件化之前,有必要说明一下它对ActivityManagerServiche以及PackageManagerService的Hook方式(以下简称AMS,PMS)。ActivityManagerSer...转载 2018-08-15 21:24:05 · 540 阅读 · 0 评论 -
AndroidHook机制——VirtualHook
对于Android应用安全研究人员来说,Xposed想必一定不陌生。作为一款流行的应用hook框架,Xposed允许对应用进行无感知的hook。许多实用工具,例如早期的脱壳工具Zjdroid,关闭证书强校验的JustTrustMe,Android恶意应用分析沙盒Cuckoo-Droid等,均是通过Xposed完成。然而,从Android 5.0时代起,DVM模式被ART模式取代,代码执行的机制进行...转载 2018-08-15 21:28:01 · 1568 阅读 · 0 评论 -
AndroidHook机制——入侵监听器ClickListener
背景需求如下,在不侵入业务代码的情况下监听所有的点击事件,并记录所有的点击数,用于统计热点页面和其他一些分析工作。仔细分析了下,主要涉及到2个问题:如何获取所有的带点击事件的View对象 不改动原来的业务代码,但是在原来点击事件的业务逻辑中加入新的逻辑,如点击数上传等最大的难点是怎么在不改变onclickListener->onclick(){}内部的代码块的同时,又能插入一段新...转载 2018-08-15 21:48:06 · 1836 阅读 · 3 评论 -
AndroidHook机制——插件化之Binder Hook
Android系统通过Binder机制给应用程序提供了一系列的系统服务,诸如ActivityManagerService,ClipboardManager, AudioManager等;这些广泛存在系统服务给应用程序提供了诸如任务管理,音频,视频等异常强大的功能。插件框架作为各个插件的管理者,为了使得插件能够无缝地使用这些系统服务,自然会对这些系统服务做出一定的改造(Hook),使得插件的开发...转载 2018-08-15 21:25:08 · 618 阅读 · 0 评论 -
通过leakCanary找出程序内存泄露点
LeakCanary: 让内存泄露无所遁形09 May 2015本文为LeakCanary: Detect all memory leaks!的翻译。原文在: https://corner.squareup.com/2015/05/leak-canary.htmljava.lang.OutOfMemoryError at androi转载 2016-07-14 12:57:54 · 674 阅读 · 0 评论 -
Android在开机时自动启动一个应用程序
<br />Android在开机时自动启动一个应用程序<br />文章分类:移动开发<br />在启动时自动启动一个应用程序:<br /> <br />1、AndroidManifest.xml <br /> <br />Xml代码 <br /><receiver android:enabled="true" android:name=".BootUpReceiver" <br /> android:permission="android.permission.RECEIVE_BOOT_COM原创 2011-03-16 17:43:00 · 953 阅读 · 0 评论 -
Android 全局异常捕获之CrashHandler
一个App上线或者投入到生产环境的时候崩溃了,还不知道是什么原因,这肯定是开发者的痛...所以肯定要加入全局异常捕获,如果项目较大的话,可以考虑加入第三方诸如友盟的崩溃统计插件,以达到异常捕获的效果!Crash,可以理解为崩溃、垮台,通常来讲就是App运行期间发生了不可预料的错误,虽然在经历发布之前,测试人员进行了大量的测试,但是并不能保证App的正常运行,总会或多或少有一些BUG的。转载 2016-07-07 18:53:39 · 923 阅读 · 0 评论 -
深入理解Java:注解(Annotation)基本概念
什么是注解(Annotation): Annotation(注解)就是Java提供了一种元程序中的元素关联任何信息和着任何元数据(metadata)的途径和方法。Annotion(注解)是一个接口,程序可以通过反射来获取指定程序元素的Annotion对象,然后通过Annotion对象来获取注解里面的元数据。 Annotation(注解)是JDK5.0及以后版本引入的。它可以用于转载 2016-07-19 16:00:42 · 362 阅读 · 0 评论 -
Android 事件总线OTTO用法快速入门
一、Otto介绍OTTO是Square推出的库,地址:https://github.com/square/otto先来看看otto的官方介绍An enhanced Guava-based event bus with emphasis on Android support.Otto is an event bus designed to decouple differe转载 2016-07-16 22:17:09 · 457 阅读 · 0 评论 -
详细解析RxAndroid的使用方式
欢迎Follow我的GitHub, 关注我的简书. 其余参考Android目录.RxAndroid是RxJava的扩展, 可以优雅地处理异步请求. 以前的文章讲述过一些, 这次再补充些内容, 熟悉RxAndroid的使用方法.本文源码的GitHub下载地址要点包含:(1) 链式表达式的使用方式.(2) Lambda的应用.(3) Rx处理网络请求.(4) 线程自转载 2016-07-15 17:43:45 · 721 阅读 · 0 评论 -
Android Drawable 那些不为人知的高效用法
Android Drawable 那些不为人知的高效用法分类: 【Android 自定义控件实战】 【Android 源码解析】2015-02-26 09:21 35444人阅读 评论(52) 收藏 举报AndroidDrawableCustom StateRoundImageView目录(?)[+]转载请标明出处:http://bl转载 2015-11-05 13:43:14 · 610 阅读 · 0 评论 -
FaceBook开源Fresco介绍
在Android设备上面,快速高效的显示图片是极为重要的。过去的几年里,我们在如何高效的存储图像这方面遇到了很多问题。图片太大,但是手机的 内存却很小。每一个像素的R、G、B和alpha通道总共要占用4byte的空间。如果手机的屏幕是480*800,那么一张屏幕大小的图片就要占用 1.5M的内存。手机的内存通常很小,特别是Android设备还要给各个应用分配内存。在某些设备上,分给Facebook转载 2015-12-25 14:00:29 · 891 阅读 · 0 评论 -
Android腾讯微薄客户端开发十二:博主的偶像
Java代码 public class IdolActivity extends ListActivity implements OnItemClickListener{ private DataHelper dataHelper;原创 2011-08-17 17:03:08 · 503 阅读 · 0 评论 -
Retrofit中如何正确的使用https和证书锁定
很多文章对客户端https的使用都是很模糊的,不但如此,有些开发者直接从网上拷贝一些使用https的“漏洞”代码,无形之中让客户端处在一种高风险的情况下。今天我们就对有关https使用的问题进行深入的探讨,希望能解决以往的困惑。对于https,需要了解其工作原理的可以参考https是如何工作的?,更多关于https的问题我会站在客户端的角度在后面陆陆续续的写出来。证书锁定转载 2016-10-14 11:29:35 · 1474 阅读 · 0 评论 -
Android桌面快捷方式那些事与那些坑
原文来自http://blog.zanlabs.com/2015/03/14/android-shortcut-summary/将近二个多月没写博客了。之前一段时间一直在搞红包助手,就没抽时间写博客,但写这个真的是很好玩。没想到居然在Android上实现模拟点击,从而实现自动抢红包,有兴趣的同学可以参考https://github.com/waylife/RedEnvelopeAssi转载 2015-12-28 15:45:06 · 1113 阅读 · 0 评论 -
Android 三大图片缓存原理、特性对比
这是 Trinea 在 MDCC 上分享的内容(略微改动),也是源码解析第一期发布时介绍的源码解析后续会慢慢做的事。从总体设计和原理上对几个图片缓存进行对比,没用到他们的朋友也可以了解他们在某些特性上的实现。上篇关于选择开源项目的好处及如何选择开源项目可见:开源项目使用及选型。一. 四大图片缓存基本信息Universal ImageLoader 是很早开源的图片转载 2016-07-07 14:00:56 · 280 阅读 · 0 评论 -
Android动画及图片的缩放和旋转
Android动画有2种,一种是Tween Animation,另一种是Frame Animation,先说说Tween动画吧。 Tween动画是对视图对象中的内容进行一系列简单的转换,比如位置的移动,大小的缩放,旋转,透明度得变化等等。Tween动画可以写到一个xml文件中,转载 2011-07-19 11:26:38 · 725 阅读 · 0 评论 -
Android腾讯微博客户端开发五:利用FootView实现ListView滑动动态加载实现分页
看布局代码:布局代码还用到了include,主要是用来重用布局的。include一定要放在最下面啊,因为FrameLayout后面的内容会覆盖掉前面的内容,如果你放在上面,将会看不到标题栏。 Java代码 <List转载 2011-08-17 15:19:34 · 1639 阅读 · 0 评论 -
Android判断应用是否存在
<br />Android判断应用是否存在<br />文章分类:移动开发<br />通过包名判断<br /> <br /> <br />Java代码 <br />public boolean checkBrowser(String packageName) { <br /> if (packageName == null || "".equals(packageName)) <br /> return false; <br /> try { <br /> A转载 2011-03-16 16:50:00 · 1302 阅读 · 0 评论 -
Android 动画框架详解第2部分(Android launcher 的平滑和立体翻页效果)
我们这里把 Android launcher 程序的 Workspace 相关的代码抽取出来,以一个比较简单的代码来展示 launcher 程序是如何实现多页以及不同页面之间的切换效果。本示例代码在 SDK 2.1 中运行,设置的是 WVGA 的屏幕大小。首先我们来看一下程序运行的效果来一些感性的认识。图 2:立体翻页效果窗口页面的布局接着我们来转载 2015-12-10 09:38:30 · 831 阅读 · 0 评论 -
状态栏 标题栏 隐藏
<br />隐藏 状态栏 即:最上方的信号强度 3G网络 等属性 * 如何隐藏 Java代码 this.getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN); 隐藏 标题栏 即:ImageSizeUpdate 那行 * 如何隐藏 Java代码 //注意:2行代码的先后顺序 不能颠倒 requestWindowFeature(Window.FEAT转载 2011-03-16 19:27:00 · 835 阅读 · 0 评论 -
startActivityForResult使用方法
package com.webabcd.activity;import android.app.Activity;import android.content.Intent;import android.os.Bundle;import android.util.Log;import android.view.View;import android.widget.Button;import android.widget.TextView;public class Main extends Activity原创 2011-03-21 15:08:00 · 1560 阅读 · 0 评论 -
在android中实现手势翻页效果
<br />在android中实现手势翻页效果,主要用到ViewFlipper和GestureDetector. <br />ViewFlipper变化当前显示内容,GestureDetector监听手势. <br />用于多页的展示非常酷. <br />以下是简略说明: <br />首先创建工程:TestFlip,创建主Activity:TestFlip. <br />在res/layout/main.xml中添加flipper信息,如下: <br />Java代码 <br /><?xml versio转载 2011-03-16 19:29:00 · 1747 阅读 · 0 评论 -
Android创建快捷方式(shortcut)
<br />文章分类:移动开发<br />创建应用程序的快捷方式如下:<br /> <br />Action<br /> <br />Java代码 <br />private static final String ACTION_INSTALL_SHORTCUT = "com.android.launcher.action.INSTALL_SHORTCUT"; <br /> <br /> <br />Java代码 <br />Intent shortcutIntent = new Intent(ACT原创 2011-03-16 17:36:00 · 994 阅读 · 0 评论 -
浅谈Android开发中内存泄露与优化-------其一
内存泄露是在Android开发中尤其要重视的一个问题,对开发人员开说,这是一个很容易犯也很常见的错误。优化内存泄露的问题,主要从两方面着手,一是开发人员避免写出有内存泄露的代码,二是通过一些诸如MAT的内存分析工具来找出潜在的内存泄露并解决它。其实平时遇到的最多的情况,就是对Activity或Context保持一个长生命周期的引用。下面主要来分析一下造成内存泄露的各种原因。一、静态转载 2016-07-07 18:41:26 · 350 阅读 · 0 评论 -
Android NFC相关资料之MifareClassic卡(读写)
一般来说,给予MifareClassic的射频卡,一般内存大小有3种:1K: 16个分区(sector),每个分区4个块(block),每个块(block) 16个byte数据2K: 32个分区,每个分区4个块(block),每个块(block) 16个byte数据4K:64个分区,每个分区4个块(block),每个块(block) 16个byte数据对于所有基于MifareClassic的卡来说,转载 2016-07-13 20:48:35 · 2071 阅读 · 0 评论
分享