自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Android小码农的博客

十年生死两茫茫,写程序,到天亮。千行代码,Bug何处藏。 纵使上线又怎样,朝令改,夕断肠。 领导每天新想法,天天改,日日忙。相顾无言,惟有泪千行。每晚灯火阑珊处,夜难寐,又加班。

  • 博客(234)
  • 收藏
  • 关注

转载 Android SDK目录及版本号区别

今天又有人问Tools,Build-Tools,Platform-tools有什么区别,是干嘛的?现在对SDK目录做一下总结阐述!SDK目录add-onesadd-ones:里面保存着一些附加的库,第三方公司为Android平台开发的附加功能系统。比如GoogleMaps 。(一开始此包为空)build-toolsbuild-tools:编译工具目录,包含了转化为davlik...

2018-09-18 11:07:03 5969

转载 Android官方技术文档翻译——清单合并

本文译自Android官方技术文档《Manifest Merger》,原文地址:http://tools.android.com/tech-docs/new-build-system/user-guide/manifest-merger。翻译不易,转载请注明CSDN博客上的出处:http://blog.csdn.net/maosidiaoxian/article/details/42671...

2018-09-18 10:53:28 565

转载 JAVA虚拟机、Dalvik虚拟机和ART虚拟机简要对比

1、什么是JVM?JVM本质上就是一个软件,是计算机硬件的一层软件抽象,在这之上才能够运行Java程序,JAVA在编译后会生成类似于汇编语言的JVM字节码,与C语言编译后产生的汇编语言不同的是,C编译成的汇编语言会直接在硬件上跑,但JAVA编译后生成的字节码是在JVM上跑,需要由JVM把字节码翻译成机器指令,才能使JAVA程序跑起来。JVM运行在操作系统上,屏蔽了底层实现的差异,从

2017-11-23 09:45:31 323

转载 Android各版本代号、版本号、API/NDK级别、发布时间及市场份额

API Level 最初Android版本 Linux内核版本 首次发布日期 后续Android版本 28 9 Unknown 2018-07-02(Beta 3) - 27 8.1 4.10 2017-12-05 无 26 8.0 4.10 2017-08-21 无 25 7.1...

2017-11-23 09:16:55 1378

转载 Android 系统服务一览表

1.AccountManagerServiceAndroid账户服务,提供了对账户、密码、授权的集中管理。2.AccessibilityManagerService辅助管理程序截获所有的用户输入,并根据这些输入给用户一些额外的反馈,起到辅助的效果,View的点击、焦点等事件分发管理服。3.ActivityManagerServiceAndroid framework框架核心服务

2017-11-22 10:15:09 1319

转载 Android系统开篇

转载自:http://gityuan.com/android/一、引言Android系统非常庞大、错综复杂,其底层是采用Linux作为基底,上层采用包含虚拟机的Java层以及Native层,通过系统调用(Syscall)连通系统的内核空间与用户空间。用户空间主要采用C++和Java代码,通过JNI技术打通用户空间的Java层和Native层(C++/C),从而融为一体。Goog

2017-10-23 11:58:33 405

转载 Android系统架构与系统源码目录

1.Android系统架构Android系统架构分为五层,从上到下依次是应用层、应用框架层、系统运行库层、硬件抽象层和Linux内核层。 应用层系统内置的应用程序以及非系统级的应用程序都是属于应用层。负责与用户进行直接交互,通常都是用Java进行开发的。应用框架层(Java Framework)应用框架层为开发人员提供了可以开发应用程序所需要的API,我们平常开发应用程序都

2017-10-23 11:30:57 1119

转载 写给Android开发者的混淆使用手册

毫无疑问,混淆是打包过程中最重要的流程之一,在没有特殊原因的情况下,所有 app 都应该开启混淆。首先,这里说的的混淆其实是包括了代码压缩、代码混淆以及资源压缩等的优化过程。依靠 ProGuard,混淆流程将主项目以及依赖库中未被使用的类、类成员、方法、属性移除,这有助于规避64K方法数的瓶颈;同时,将类、类成员、方法重命名为无意义的简短名称,增加了逆向工程的难度。而依靠 Gradle 的 A...

2017-09-05 09:43:13 771 3

转载 Android Studio gradle配置详解

什么是AppExtension其实就是一个对gradle配置android项目的一个拓展,对于android studio build.gradle 配置如下的属于AppExtensionapply plugin: 'com.android.application'AppExtension包含的常用属性 aaptOptions:aapt是一个可以将资源文件编译成二进制文件...

2019-11-20 10:58:14 3843

转载 git更新类型update type

一、git type的选择merge 合并 Rebase 保留本地项目代码 Branch Default 保留远程仓库的代码二、区别这三者如果没有冲突,update的表现方式是没有区别的,但是如果需要更新的文件和远程仓库有差异,就会有不同的表现2.1 merge select this option to perform merge during the updat...

2019-11-07 17:59:51 3380

原创 SharedPreferences使用

1.SharedPreferences简介为了保存软件的设置参数,Android平台为我们提供了一个SharedPreferences接口,它是一个轻量级的存储类,特别适合用于保存软件配置参数。使用SharedPreferences保存数据,其背后是用xml文件存放数据,文件存放在/data/data/<package name>/shared_prefs目录下。2.获取Sha...

2019-11-07 15:39:15 1112

转载 Serializable和Parcelable

对象在传递过程中必须进行序列化方可传递,android序列化有两种方式,分别是继承Serializable和Parcelable接口。两种都是用于支持序列化、反序列化话操作,两者最大的区别在于存储媒介的不同,Serializable使用IO读写存储在硬盘上,而Parcelable是直接在内存中读写,很明显内存的读写速度通常大于IO读写,Serializable是java序列化接口,使用起来简单但是...

2019-10-25 09:46:05 409

原创 Android USB使用

Android开发中USB串口通信开发主要涉及到以下几个类及相应的方法:1 ,UsbManager:负责管理USB设备的类,你可以在相应代码中通过以下方法获得//获取UsbManager实例方法UsbManager manager = (UsbManager) getSystemService(Context.USB_SERVICE);该类提供的主要方法有:1) getDevic...

2019-10-18 12:00:01 1762

转载 Fiddler实现手机抓包——小白入门

电脑最好是笔记本,这样能和手机保持统一局域网内;其他不多说,直接说步骤了。一.对PC(笔记本)参数进行配置 1. 配置fiddler允许监听到https(fiddler默认只抓取http格式的) 打开Fiddler菜单项Tools->TelerikFiddler Options->HTTPS, 勾选CaptureHTTPS CONNE...

2019-10-17 14:33:30 2229

转载 Fiddler 抓包工具总结

序章Fiddler是一个蛮好用的抓包工具,可以将网络传输发送与接受的数据包进行截获、重发、编辑、转存等操作。也可以用来检测网络安全。反正好处多多,举之不尽呀!当年学习的时候也蛮费劲,一些蛮实用隐藏的小功能用了之后就忘记了,每次去网站上找也很麻烦,所以搜集各大网络的资料,总结了一些常用的功能。Fiddler 下载地址 :https://www.telerik.com/download/...

2019-10-17 14:30:20 175

转载 @android, ?attr/ 和 ?android 的区别

前言:安卓开发中我们时常会需要引用一些特殊的资源,比如设置一些可点击组件的波纹效果时,我们会用到:android:foreground="?attr/selectableItemBackground",但是这些引用方式之间有哪些区别呢?1,获取资源首先来复习一下安卓中获取资源的几种方式。@[<package_name>:]<resource_type>/&lt...

2019-10-15 16:30:38 960

原创 Android网络请求-HttpURLConnection和继续使用HttpCient的适配

HttpURLConnection和HttpClient比较 :HttpURLConnection书写时比较繁琐,但运行效率较高HttpClient书写变的容易,并且便于理解,运行效率不如HttpURLConnectionHttpURLConnection是一种多用途、轻量极的HTTP客户端,使用它来进行HTTP操作可以适用于大多数的应用程序。对于之前为何一直使用HttpClient...

2019-10-12 11:38:47 369

原创 Android各种访问权限Permission详解

android.permission.EXPAND_STATUS_BAR允许一个程序扩展收缩在状态栏,android开发网提示应该是一个类似Windows Mobile中的托盘程序 android.permission.FACTORY_TEST作为一个工厂测试程序,运行在root用户 android.permission.FLASHLIGHT访问闪光灯,android开发网提示HTC D...

2019-09-27 17:38:11 3681 1

转载 Android Studio将module打包并放到github作为远程maven仓库

###环境1.git2.Android Studio###步骤 1.创建作为库的Module 2.生成maven文件 3.在Github创建仓库,并将生成的maven文件上传 4.项目添加远程Maven依赖库 5.验证这里以新工程为例1.创建作为库的Module1.1 新工程建完以后,新建一个库的Module。1.2 接着给库名和模...

2019-09-23 18:07:54 1645

转载 JitPack - 发布Android库

JitPack.io 是一个 JVM/Android 工程的包管理仓库。开发者可以在上面发布自己的库,一旦成功发布,就可以方便的在 Gradle 中引用。 当然了,Andriod 相关的包管理仓库除了 JitPack 之外,还有 jCenter 等,但 JitPack 应该发布起来是最简单的了。发布 Android Library1. Gradle为了让 JitPack 能正确的构建 ...

2019-07-31 09:58:08 598

转载 新版Bintray网站发布Library到JCenter

本文介绍了Maven、JCenter、MavenCenter、JitPack、Bintray的概念以及如何在新版的Bintray网站上发布Library并提交到JCenter上前言由于Bintray网站增加了Organization的概念,所以我在发布Library的时候发现网上很多文章都已经过时了。网站样子发生了很大的变化。所以在这篇文章把如何在最新的Bintray上发布Library到...

2019-07-31 09:48:58 534

转载 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 716

转载 原码、反码、补码知识详细讲解

一. 机器数和真值在学习原码, 反码和补码之前, 需要先了解机器数和真值的概念.1、机器数一个数在计算机中的二进制表示形式, 叫做这个数的机器数。机器数是带符号的,在计算机用一个数的最高位存放符号, 正数为0, 负数为1.比如,十进制中的数 +3 ,计算机字长为8位,转换成二进制就是00000011。如果是 -3 ,就是 10000011 。那么,这里的 00000011 和...

2019-06-05 17:23:54 476

转载 Android 动画总结

Android 中的动画可以分为以下几类:逐帧动画 补间动画 属性动画一、逐帧动画逐帧动画的原理就是让一系列的静态图片依次播放,利用人眼“视觉暂留”的原理,实现动画。利用 xml 实现逐帧动画逐帧动画通常是采用 XML 资源进行定义的,需要在 <animation-list .../> 标签下使用 <item .../> 子元素标签定义动画的全部帧,并...

2019-04-22 11:10:24 316

转载 Android 如何编写基于编译时注解的项目

一、概述在Android应用开发中,我们常常为了提升开发效率会选择使用一些基于注解的框架,但是由于反射造成一定运行效率的损耗,所以我们会更青睐于编译时注解的框架,例如: butterknife免去我们编写View的初始化以及事件的注入的代码。 EventBus3方便我们实现组建间通讯。 fragmentargs轻松的为fragment添加参数信息,并提供创建方法。...

2019-04-18 10:05:18 254

转载 你必须知道的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 380

转载 Java编译时注解处理器(Annotation Processor)详解

上篇文章我们使用注解+反射实现了一个仿ButterKnife功能的示例。考虑到反射是在运行时完成的,多少会影响程序性能。因此,ButterKnife本身并非基于注解+反射来实现的,而是用Annotation Processor在编译时处理注解的。Annotation Processor什么呢?本篇文章就来认识下Annotation Processor吧。Annotation Processor使...

2019-04-18 09:21:27 4420

转载 App打包原理——Android项目构建过程

一)如下是一个apk解压后的目录,我们先有个印象,后面会提到每个目录在构建过程中是如何生成的。 AndroidManifest.xml 程序全局配置文件 classes.dex Dalvik字节码 resources.arsc 资源索引表, 解压缩resources.ap_就能看到 res\ ...

2019-04-12 10:43:10 462

转载 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 564

转载 Android工程师,如何简单高效的学会smali语法

注意:本篇是一个以方法论为导向的文章。Q1:Smali是什么。Smali是一种宽松式的Jasmin/dedexer语法.简单来说就是我们用java写的代码编译成class打包成dex文件后使用baksmali程序逆向回来的一种语法。Q2:为什么要学习Smali。首先,提到smali就不得不说逆向。早在还没有android之前,各大平台和语言上就有对应的逆向一说。那么到目前为止...

2019-04-12 09:16:35 259

转载 超实用!常用开源许可证有啥区别。

作为一个开源爱好者,我们经常会写一些开源的软件或者工具在网上分享,或者为一些其他的开源软件贡献一些自己的力量,但是对于开源许可(License)是有很多种的哦,每一种是有不同的约束的,在法治国家是具有法律约束的。概念首先我们来了解一些基本的概念。贡献者(Contributors)& 受益者(Recipients)贡献者(Contributors)指的是对某个开源软件或项目提...

2019-04-03 15:27:48 3388 1

转载 Android Studio中如何使用Git和Github来管理项目

As we know,Git是目前世界上最先进的分布式版本控制系统,而Github是最大的开源社区。在Github上的项目就是使用git来管理的,所以学好Git的使用是很有必要的。下面看具体步骤。1、要在as中使用git,首先你的在本地安装Git,具体安装流程大家可以看我blog:版本控制工具Git详解​2、在studio中配置git插件:File->Setting->...

2019-03-20 11:01:22 822

转载 HTTPS理论基础及其在Android中的最佳实践

我们知道,HTTP请求都是明文传输的,所谓的明文指的是没有经过加密的信息,如果HTTP请求被黑客拦截,并且里面含有银行卡密码等敏感数据的话,会非常危险。为了解决这个问题,Netscape 公司制定了HTTPS协议,HTTPS可以将数据加密传输,也就是传输的是密文,即便黑客在传输过程中拦截到数据也无法破译,这就保证了网络通信的安全。密码学基础在正式讲解HTTPS协议之前,我们首先要知道一些密码...

2019-03-20 09:32:22 298

转载 Fiddle详解

序章Fiddler是一个蛮好用的抓包工具,可以将网络传输发送与接受的数据包进行截获、重发、编辑、转存等操作。也可以用来检测网络安全。反正好处多多,举之不尽呀!当年学习的时候也蛮费劲,一些蛮实用隐藏的小功能用了之后就忘记了,每次去网站上找也很麻烦,所以搜集各大网络的资料,总结了一些常用的功能。Fiddler 下载地址 :https://www.telerik.com/download/fid...

2019-03-19 20:50:13 17191 2

原创 打开fiddler 电脑无法上网问题

一、版本信息Firefox 最新版本V46.0.1Fiddler 最新版本V4.6.2.3二、错误信息开启fiddlers的https协议捕获的方法,百度上可以查到不再赘述,直接放张图(Tools - Fiddlers Options……)。开启https协议捕获之后,用firefox访问任何https协议的网址,都会提示如下图所示的"你的连接并不安全"的提示。...

2019-03-19 20:16:36 4885 2

转载 Fiddler的安装与使用

Fiddler是位于客户端和服务器端之间的代理,也是目前最常用的抓包工具之一 。它能够记录客户端和服务器之间的所有 请求,可以针对特定的请求,分析请求数据、设置断点、调试web应用、修改请求的数据,甚至可以修改服务器返回的数据,功能非常强大,是web调试的利器。看到这么多的应用,是不是就迫不及待的想要开始你的抓包之旅呢,不要急,俗话说的好:工欲善其事,必先利其器,我们先来安装Fiddler吧。...

2019-03-18 15:53:24 783

转载 类(class)文件结构

1、类文件介绍每一个 Class 文件都对应着唯一一个类或接口的定义信息,但是相对地,类或接口并不一定都得定义在文件里(譬如类或接口也可以通过类加载器直接生成)。本节中,我们只是通俗地将任意一个有效的类或接口所应当满足的格式称为“Class 文件格式”,即使它不一定以磁盘文件的形式存在。每个 Class 文件都是由 8 字节为单位的字节流组成,所有的 16 位、32 位和 64 位长度...

2019-02-25 15:37:46 989

转载 java反汇编及JVM指令集(指令码、助记符、功能描述)

1.反编译指令:javap -c xxx.class2.jvm指令集  JVM指令集(指令码、助记符、功能描述) 指令码 助记符 功能描述 0x00 nop 无操作   0x01 aconst_null ...

2019-02-25 15:29:38 902

转载 Android 一共有多少种动画?准确告诉你!

Android 动画Android 动画在开发中是不可或缺的功能,或者说是界面灵动的添加剂。那你是否总结过 Android 中总共为开发者提供了多少种方式的动画呢?今天就为大家总结归纳一下。我话音未落,前排那位骚气不减当年、故事布满双眼的大胸弟就激动得高高举起了那只满是老茧的右手:“我知道,我知道!都有平移动画、缩放动画、旋转动画、渐变动画、还有......”看着这位兄弟回答时...

2019-02-20 16:06:22 755

转载 安卓开发中SpannableString之富文本显示效果

SpannableString其实和String一样,都是一种字符串类型,SpannableString可以直接作为TextView的显示文本,不同的是SpannableString可以通过使用其方法setSpan方法实现字符串各种形式风格的显示,重要的是可以指定设置的区间,也就是为字符串指定下标区间内的子字符串设置格式。setSpan(Object what, int start, int ...

2019-02-19 17:37:12 211

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除