Android
文章平均质量分 79
Android小码农
这个作者很懒,什么都没留下…
展开
-
Android逆向基础知识Smali
什么是Smali:我们用工具反编译一些APP的时候,会看到一个smali文件夹,里面其实就是每个Java类所对应的smali文件。Android虚拟机Dalvik并不是执行java虚拟机JVM编译后生成的class文件,而是执行再重新整合打包后生成的dex文件,dex文件反编译之后就是smali代码,可以说,smali语言是Dalvik的反汇编语言JAVA和Smali数据类型对比:J...转载 2019-04-12 09:21:49 · 627 阅读 · 0 评论 -
Android工程师,如何简单高效的学会smali语法
注意:本篇是一个以方法论为导向的文章。Q1:Smali是什么。Smali是一种宽松式的Jasmin/dedexer语法.简单来说就是我们用java写的代码编译成class打包成dex文件后使用baksmali程序逆向回来的一种语法。Q2:为什么要学习Smali。首先,提到smali就不得不说逆向。早在还没有android之前,各大平台和语言上就有对应的逆向一说。那么到目前为止...转载 2019-04-12 09:16:35 · 275 阅读 · 0 评论 -
Smali语法详解
smali文件格式每个smali文件都由若干条语句组成,所有的语句都遵循着一套语法规则。在smali 文件的头3 行描述了当前类的一些信息,格式如下:[java] view plaincopy.class [ 修饰关键字] .super .source 打开MainActivity.smali 文件,头3 行代码如下:[java]转载 2018-01-24 11:31:19 · 3634 阅读 · 0 评论 -
Android 如何编写基于编译时注解的项目
一、概述在Android应用开发中,我们常常为了提升开发效率会选择使用一些基于注解的框架,但是由于反射造成一定运行效率的损耗,所以我们会更青睐于编译时注解的框架,例如: butterknife免去我们编写View的初始化以及事件的注入的代码。 EventBus3方便我们实现组建间通讯。 fragmentargs轻松的为fragment添加参数信息,并提供创建方法。...转载 2019-04-18 10:05:18 · 268 阅读 · 0 评论 -
你必须知道的APT、annotationProcessor、android-apt、Provided、自定义注解
你可能经常在build.gradle文件中看到,这样的字眼,annotationProcessor、android-apt、Provided,它们到底有什么作用?下面就一起来看看吧1、什么是APT?随着一些如ButterKnife,dagger等的开源注解框架的流行,APT的概念也越来越被熟知。annotationProcessor和android-apt的功能是一样的,它们是替代关系,...转载 2019-04-18 09:33:37 · 399 阅读 · 0 评论 -
Java编译时注解处理器(Annotation Processor)详解
上篇文章我们使用注解+反射实现了一个仿ButterKnife功能的示例。考虑到反射是在运行时完成的,多少会影响程序性能。因此,ButterKnife本身并非基于注解+反射来实现的,而是用Annotation Processor在编译时处理注解的。Annotation Processor什么呢?本篇文章就来认识下Annotation Processor吧。Annotation Processor使...转载 2019-04-18 09:21:27 · 5301 阅读 · 0 评论 -
Android进阶之自定义注解
Android进阶之自定义注解本篇文章内容包括:注解的概念 元注解 自定义注解 Android自定义编译时注解如果使用过ButterKnife, EventBus, Retrofit, Dagger等框架, 你对注解一定不会陌生. 但是注解背后究竟有什么魔法, 可以做这么不可思议的事情.什么是注解先来看看Java文档中的定义An annotation is a for...转载 2018-09-14 17:26:46 · 285 阅读 · 0 评论 -
Android 注解指南
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/ziwang_/article/details/70513932前言 一览 示例详解前言日常开发中,注解能够帮助我们写出更好更优秀的代码,为了更好地支持 Android 开发,在已有的 android.annotation 基础上,Google 开发了 android.support.a...转载 2018-09-14 17:18:28 · 450 阅读 · 0 评论 -
Android 动画总结
Android 中的动画可以分为以下几类:逐帧动画 补间动画 属性动画一、逐帧动画逐帧动画的原理就是让一系列的静态图片依次播放,利用人眼“视觉暂留”的原理,实现动画。利用 xml 实现逐帧动画逐帧动画通常是采用 XML 资源进行定义的,需要在 <animation-list .../> 标签下使用 <item .../> 子元素标签定义动画的全部帧,并...转载 2019-04-22 11:10:24 · 333 阅读 · 0 评论 -
Android 一共有多少种动画?准确告诉你!
Android 动画Android 动画在开发中是不可或缺的功能,或者说是界面灵动的添加剂。那你是否总结过 Android 中总共为开发者提供了多少种方式的动画呢?今天就为大家总结归纳一下。我话音未落,前排那位骚气不减当年、故事布满双眼的大胸弟就激动得高高举起了那只满是老茧的右手:“我知道,我知道!都有平移动画、缩放动画、旋转动画、渐变动画、还有......”看着这位兄弟回答时...转载 2019-02-20 16:06:22 · 780 阅读 · 0 评论 -
Android LayoutAnimation使用及扩展
layout动画在每次布局发生变化的时候系统调用的一个预加载动画效果,使用layout动画可以让布局的变化过度看起来更自然。使用起来很简单,只需在控件中添加一个属性就可以了,系统默认是不会启动layout动画的,因此我们平时的应用中不会产生这个效果。当然,如果你想自定义一下这个动画效果,那就必须在代码中自己写了:新建一个LayoutTransition对象,调用setLayoutTransit...转载 2018-12-25 09:53:22 · 3102 阅读 · 0 评论 -
Android开发——View动画、帧动画和属性动画详解
转载自http://blog.csdn.net/seu_calvin/article/details/527246550. 前言 Android动画是面试的时候经常被问到的话题。我们都知道Android动画分为三类:View动画、帧动画和属性动画。先对这三种动画做一个概述:View动画是一种渐进式动画,定义动画开始和结束的两帧,并指定动画变化的时间和方式。并通过平移、缩放、旋转和...转载 2018-12-25 09:43:20 · 733 阅读 · 0 评论 -
Android动画的使用
在APP开发的过程中,在合适的时机引入合适的动画。会让我们的APP动起来,更加的吸引眼球。这里我们就来总结下Android里面的动画。按照我们的理解Android里面动画分为三类:属性动画(Property Animation)、视图动画(View Animation)、过渡动画(Transition Animation)。 在说Android的这三种动画之前,我们先的来提一下T...转载 2018-09-18 15:47:28 · 416 阅读 · 0 评论 -
Android蓝牙开发全面总结
基本概念安卓平台提供对蓝牙的通讯栈的支持,允许设别和其他的设备进行无线传输数据。应用程序层通过安卓API来调用蓝牙的相关功能,这些API使程序无线连接到蓝牙设备,并拥有P2P或者多端无线连接的特性。蓝牙的功能:1、扫描其他蓝牙设备2、为可配对的蓝牙设备查询蓝牙适配器3、建立RFCOMM通道(其实就是尼玛的认证)4、通过服务搜索来链接其他的设备转载 2017-11-03 15:19:37 · 31620 阅读 · 3 评论 -
深入了解Android蓝牙Bluetooth ——《总结篇》
在我的上两篇博文中讲解了有关android蓝牙的认识以及API的相关的介绍,蓝牙BLE的搜索,连接以及读取。 没有了解的童鞋们请参考:深入了解Android蓝牙Bluetooth——《基础篇》深入了解Android蓝牙Bluetooth——《进阶篇》目前项目中的效果图:接下来我们就对蓝牙BLE4.0进行一下总结。蓝牙APIAndroid ble 蓝牙转载 2017-11-03 13:58:15 · 1186 阅读 · 0 评论 -
深入了解Android蓝牙Bluetooth——《进阶篇》
在 深入了解Android蓝牙Bluetooth——《基础篇》一篇中我们对蓝牙的各个版本的有了一个认识,蓝牙版本的历程及其优劣式介绍。那么接下来咱们就深入一点继续开车进入BLE的进及篇章。BLE蓝牙设备连接读取的顺序:蓝牙BLE4.xBLE分为三部分:ServiceCharacteristicDescriptor这三部分都用UUID作为唯一标识符。UUID为这种转载 2017-11-03 12:04:00 · 521 阅读 · 0 评论 -
深入了解Android蓝牙Bluetooth——《基础篇》
什么是蓝牙? 也可以说是蓝牙技术。所谓蓝牙(Bluetooth)技术,实际上是一种短距离无线电技术,是由爱立信公司公司发明的。利用“蓝牙”技术,能够有效地简化掌上电脑、笔记本电脑和移动电话手机等移动通信终端设备之间的通信,也能够成功地简化以上这些设备与因特网Internet之间的通信,从而使这些现代通信设备与因特网之间的数据传输变得更加迅速高效,为无线通信拓宽道路。蓝牙版本的介绍转载 2017-11-03 12:02:31 · 703 阅读 · 0 评论 -
Res目录下资源如图片文件和xml文件资源如何被加载显示出来
紧接上一篇 Android App启动时Apk资源加载机制源码分析 分析App启动时是如何加载初始化资源之后,接下来分析开发过程中调用显示资源View的Api接口(如设置背景图片)具体是如何把启动时加载好的图片显示出来。上篇讲的启动时候加载资源只是把资源初始化准备好,而这篇是将具体实际显示资源时候,是如何把启动时准备好的res资源加载出来供View显示。可以说上篇就是AssetManager实转载 2018-01-12 11:00:18 · 2170 阅读 · 0 评论 -
Android 资源加载机制详解
Android提供了一种非常灵活的资源系统,可以根据不同的条件提供可替代资源。因此,系统基于很少的改造就能支持新特性,比如Android N中的分屏模式。这也是Android强大部分之一。本文主要讲述Android资源系统的实现原理,以及在应用开发中需要注意的事项。一、定义资源Android使用XML文件描述各种资源,包括字符串、颜色、尺寸、主题、布局、甚至是图片(selector,lay转载 2018-01-12 10:55:45 · 1813 阅读 · 0 评论 -
Android App启动时Apk资源加载机制源码分析
在Andorid开发中我们要设置文字或图片显示,都直接通过Api一步调用就完成了,不仅是我们工程下res资源以及系统自带的framwork资源也可以,那这些资源打包成Apk之后是如何被系统加载从而显示出来的呢。这里我要从Apk安装之后启动流程开始讲起,在桌面应用click事件之后 会通过Binder机制通知ActivityManagerService启动,具体由ActivityManage转载 2018-01-12 10:36:39 · 985 阅读 · 1 评论 -
Android studio中NDK开发——使用CMake构建
一、前言NDK可以支持使用C/C++来编写Android程序,不但可以引入C/C++中优秀的库资源,而且在使用底层的C/C++来处理一些复杂的运算效率更高,并且可以方便跨平台移植。本篇主要以CMake的方式来构建NDK,主要以最常规的方式创建一个NDKImportDemo,并对自动创建官方例子进行分析构建的过程以及CMakeLists.txt构建文件的配置。二、准备1、检查Androi...转载 2019-06-12 15:55:07 · 764 阅读 · 0 评论 -
HTTPS理论基础及其在Android中的最佳实践
我们知道,HTTP请求都是明文传输的,所谓的明文指的是没有经过加密的信息,如果HTTP请求被黑客拦截,并且里面含有银行卡密码等敏感数据的话,会非常危险。为了解决这个问题,Netscape 公司制定了HTTPS协议,HTTPS可以将数据加密传输,也就是传输的是密文,即便黑客在传输过程中拦截到数据也无法破译,这就保证了网络通信的安全。密码学基础在正式讲解HTTPS协议之前,我们首先要知道一些密码...转载 2019-03-20 09:32:22 · 313 阅读 · 0 评论 -
超级实用:小而精,优而美的开源库
我们在开发过程中会遇到很多这样的情况,就是:很多开发模块或者技术实现很常用,开发起来技术也不难,但是过程却是很繁琐,很啰嗦,很多时候粘贴复制的能够让你烦气,感觉很没意思。这时候,聪明的开发者就会把这个东西封装起来,等到下次用的时候,随手就用,非常方便。SocialHelper那么,今天我们分享的一个开源库就是SocialHelper,顾名思义:社会化分享帮助工具类。我们现在开发 App转载 2018-01-18 10:48:15 · 603 阅读 · 3 评论 -
OkHttp3开发
OkHttp3开发三部曲:1、创建OkHttpClient,添加配置2、创建请求3、执行请求下面分别来说说这三个步骤:一、创建OkHttpClient一个最简单的OkHttpClient[java] view plain copy OkHttpClient okHttpClient=new OkHttpClient.Builder().bui转载 2018-01-05 10:19:03 · 7526 阅读 · 0 评论 -
朋友圈动态发布时间计算
这里要大家去了解的几个重要的类:日历类:Calendar日期类:Date日期格式类:SimpleDateFormat基本上我们对日期的一些转换都是在这几个类中进行的,有以下几个常用的转换:通过Calendar获取相关日期信息,比如当前的年月日,去年的年月日、下一年的年月日等,这里可以查看笔者关于自定义日历的一篇博文,有提供相关的日期工作类:http://blog.csdn.ne转载 2017-11-23 10:31:26 · 1564 阅读 · 0 评论 -
SharedPreferences使用
1.SharedPreferences简介为了保存软件的设置参数,Android平台为我们提供了一个SharedPreferences接口,它是一个轻量级的存储类,特别适合用于保存软件配置参数。使用SharedPreferences保存数据,其背后是用xml文件存放数据,文件存放在/data/data/<package name>/shared_prefs目录下。2.获取Sha...原创 2019-11-07 15:39:15 · 1252 阅读 · 0 评论 -
Serializable和Parcelable
对象在传递过程中必须进行序列化方可传递,android序列化有两种方式,分别是继承Serializable和Parcelable接口。两种都是用于支持序列化、反序列化话操作,两者最大的区别在于存储媒介的不同,Serializable使用IO读写存储在硬盘上,而Parcelable是直接在内存中读写,很明显内存的读写速度通常大于IO读写,Serializable是java序列化接口,使用起来简单但是...转载 2019-10-25 09:46:05 · 451 阅读 · 0 评论 -
Android USB使用
Android开发中USB串口通信开发主要涉及到以下几个类及相应的方法:1 ,UsbManager:负责管理USB设备的类,你可以在相应代码中通过以下方法获得//获取UsbManager实例方法UsbManager manager = (UsbManager) getSystemService(Context.USB_SERVICE);该类提供的主要方法有:1) getDevic...原创 2019-10-18 12:00:01 · 2035 阅读 · 0 评论 -
@android, ?attr/ 和 ?android 的区别
前言:安卓开发中我们时常会需要引用一些特殊的资源,比如设置一些可点击组件的波纹效果时,我们会用到:android:foreground="?attr/selectableItemBackground",但是这些引用方式之间有哪些区别呢?1,获取资源首先来复习一下安卓中获取资源的几种方式。@[<package_name>:]<resource_type>/<...转载 2019-10-15 16:30:38 · 986 阅读 · 0 评论 -
Android网络请求-HttpURLConnection和继续使用HttpCient的适配
HttpURLConnection和HttpClient比较 :HttpURLConnection书写时比较繁琐,但运行效率较高HttpClient书写变的容易,并且便于理解,运行效率不如HttpURLConnectionHttpURLConnection是一种多用途、轻量极的HTTP客户端,使用它来进行HTTP操作可以适用于大多数的应用程序。对于之前为何一直使用HttpClient...原创 2019-10-12 11:38:47 · 397 阅读 · 0 评论 -
Android 进阶笔记。
本文转载自:Wei_Leng http://blog.csdn.net/u014608640/article/details/53063761AndroidNote项目地址:venshine/AndroidNote简介:Android 进阶笔记,包含常用的技术框架、博客社区、书籍等。大纲技术框架图片加载网络请求数据库转载 2017-07-04 10:30:31 · 606 阅读 · 0 评论 -
Android 判断当前设备是手机还是平板
官方用法:/** * 判断当前设备是手机还是平板,代码来自 Google I/O App for Android * @param context * @return 平板返回 True,手机返回 False */public static boolean isPad(Context context) { return (context.getResources().ge原创 2017-08-21 12:04:17 · 15937 阅读 · 0 评论 -
写给Android开发者的混淆使用手册
毫无疑问,混淆是打包过程中最重要的流程之一,在没有特殊原因的情况下,所有 app 都应该开启混淆。首先,这里说的的混淆其实是包括了代码压缩、代码混淆以及资源压缩等的优化过程。依靠 ProGuard,混淆流程将主项目以及依赖库中未被使用的类、类成员、方法、属性移除,这有助于规避64K方法数的瓶颈;同时,将类、类成员、方法重命名为无意义的简短名称,增加了逆向工程的难度。而依靠 Gradle 的 A...转载 2017-09-05 09:43:13 · 804 阅读 · 3 评论 -
Android多屏幕适配
1 常用单位 px:pixel //像素 in: inch //英寸 mm : 毫米 pt : 1/72英寸 dpi : dots peer inch //一英寸长的直线上的像素点的数量,即像素的密度 dp(dip) : Density-independent pixel //密度无关像素,转载 2017-07-25 16:30:06 · 618 阅读 · 0 评论 -
最强开发资源平台大合集
icon下载Easyicon:http://www.easyicon.net/Findicons:http://findicons.com/淘宝icon库:http://www.iconfont.cn/IconArchive:http://www.iconarchive.com/Dryicons:http://dryicons.com/Ico转载 2017-09-20 17:38:31 · 874 阅读 · 0 评论 -
Android 建立文件夹、生成文件并写入文本文件内容
一、首先添加权限1"android.permission.WRITE_EXTERNAL_STORAGE">二、建立文件夹、生成文件并写入文本文件内容代码12345678910111213141516171819202转载 2017-10-27 09:20:46 · 14703 阅读 · 1 评论 -
Android开发环境
Android开发环境相关名词介绍 Android 开发环境之前,需要先引入对以下相关名词的解释:IDEIDE,Intelligent Development Environment 的简称,即智能开发环境。Android IDE 可通俗地理解为Android应用开发提供支持的开发软件,有关Android的项目和代码将在 Android IDE中管理。值得注意的是,Android IDE是转载 2017-10-19 16:43:17 · 1245 阅读 · 0 评论 -
Android 项目eclipse、Android Studio目录结构分析
一、eclipse目录结构 1. src目录 这里存放的是Java源码。. 2.gen目录 里面主要包含R.java 文件,该文件自动标识了资源的索引。 3.Android 5.1.1 5.1.1 是Android 平台对于的版本,对应于API 22. 该文件包含Android.jar文件,里面关联了Android 的API. 4.An转载 2017-10-19 16:58:41 · 3314 阅读 · 0 评论 -
Windows 环境下载 Android 源码
前言Android 官网(该方式不适合 Windows 平台):https://source.android.com/source/downloading.html可是我就想在 Windows 中使用 Source Insight 看看源代码,当然可以!准备环境安装 git安装 Python自备梯子硬盘剩余容量最好大于 100G1. 安装 git官网:https://g转载 2017-10-20 09:03:12 · 430 阅读 · 0 评论 -
关于Android源码的那些事
显然Eclipse不是阅读Android源码的好工具,不流畅,搜索低效,继承性关系/调用关系都无法有效查看。推荐Source Insight,在这个工具帮助下,你才可以驾驭巨大数量的Android 源码,你可以从容在Java,C++,C代码间遨游,你可以很快找到你需要的继承和调用关系。顺便,现在东家是Linux+Samba+Windows的工作模式,Linux+Samba用于代码的同步/编译/转载 2017-10-20 09:58:30 · 265 阅读 · 0 评论