自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(15)
  • 资源 (17)
  • 收藏
  • 关注

原创 Android Gradle使用详解(六) 之 如何解决65535方法限制

当我们工程版本迭代和业务需求越来越多时,代码量自然也就越来越多。所以在日常开发中会难免会碰到方法个数超过限制65535的错误。原因就是:Java源文件在打包成一个DEX文件,这个文件就是优化过的、Dalvik虚拟机可执行的文件,Dalvik虚拟机在执行DEX文件时,它使用了short这个类型索引DEX文件中的方法,这意味着单个DEX文件可以被定义的方法最多只能是65535个,当超过这个数量时就会发...

2018-10-30 12:01:17 1173

原创 Android Gradle使用详解(五) 之 如何配置App版本号和动态生成App版本号的方法

我们清楚知道,几乎所有的软件都是存在一个版本号的东西,APP作为手机上的应用软件也不例外。版本号可以帮助APP升级使用和定位问题。一般地,版本号有3部分构成:主版本号、副版本号 以及 补丁号,例如:1.0.123。也可以是单一个主版本号,格式没有严格要求。方法一、直接配置在build.gradle文件我们在前面的博文《Android Gradle使用详解(三) 之 Android Grad...

2018-10-26 18:03:30 4077

原创 Android Gradle使用详解(四) 之 如何安全配置APK包的签名

我们在《Android Gradle使用详解(三) 之 Android Gradle插件配置详解》中有简单介绍过signingConfigs{}配置及其使用到的字段意思。它是用于给 一个APP签名配置的。一个APP只有在签名这后才能被发布、安装和使用,签名是保护APP的方式,它能标记APP的唯一性,防止恶意篡改。一般地我们在开发过程中使用的debug编译模式时,Android SDK已帮我们打上了...

2018-10-26 16:06:32 870

原创 Android Gradle使用详解(三) 之 Android Gradle插件配置详解

通上前两篇博文由浅入深的学习Gradle的基础和Gradle的Java插件相关知识后,现在终于到了高潮部分了,让我们来进一步正式学习Android Gradle插件。前面提到,Android Gradle插件是一个基于内置的Java插件来实现的第三方插件,它是由google的Android团队开发的。1 分类Android Gradle插件根据我们Android工程的属性分为三类: ...

2018-10-25 20:27:54 4863 2

原创 Android Gradle使用详解(二) 之 项目结构和初识Java Gradle插件

我们在上篇文章《Android Gradle使用详解(一) 之 Gradle基础》中介绍了一些关于Gradle的入门相关知识点。本文中会在此基础上对Android工程中Gradle的相关知识进行进一步学习。1 项目结构我们在通过Android Studio创建一个APP工程时,目录结构如下:可以看到工程目录中会自动生成一些文件。其中可以看到一些我们熟悉的文件,因为它们跟我们在上篇文...

2018-10-25 20:19:26 1089

原创 Android Gradle使用详解(一) 之 Gradle基础

1 简介Gradle是一款非常优秀的构建系统工具,它是一门专门解决自动化构建的DSL(Domain Specifice Language,领域特定语言)。它的实现基于Groovy(Groovy是一种基于JVM虚拟机的敏捷开发语言,它结合了Python、Ruby和Smalltalk的许多强大的特性,Groovy它的语法和Java非常相似,能够与 Java 代码很好地结合和扩展)。2 环境...

2018-10-25 20:11:57 2688

原创 Android中AIDL的使用(三) 之 Binder连接池

我们在上一篇文章《Android中AIDL的使用(一) 之 AIDL经典示例》中已经学习了AIDL的使用方法,同时也已经能满足基本开发需求了。但是当随着项目越来越大,不同的业务模块都需要使用AIDL来进行IPC的话,那么我们就得不断地增加Service来满足需求了。我们知道Service是四大组件之一、一种系统资源,太多的Service会使得我们的应用看起来很重量级,这样明显不是明智的解决方案。在...

2018-10-21 19:36:19 274

原创 Android中AIDL的使用(二) 之 Binder和AIDL的原理

1 Binder原理1.1 简介Binder是Android中的一种跨进程通信方式,Android的四大组件、各种Manager 和其对应ManagerService等无不与Binder挂钩。从Android Framework角度来说,Binder是ServiceManager连接ActivityManager、WindowManager等Manager和他们相应ManagerServi...

2018-10-15 17:57:41 625

原创 Android中AIDL的使用(一) 之 AIDL经典示例

在Android开发中IPC(Inter-Process Communication的缩写)多进程通信的使用场景很多。一般地由于某些功能模块需要特殊原因运行在单独的进程中,又或者为了加大一个应用可使用的内存,因为Android对单个应用使用的最大内存是有限制的,又或者需要做一些非常耗内存而又不好回收的事情,在事情完成后直接结束掉进程,等。开启多进程模式很简单,就是给四大组件指定android:pr...

2018-10-15 17:39:33 1960

原创 Android中ContentProvider的工作过程

ContentProvider是一种内容共享型组件,它通过Binder向其它组件乃至其它应用提供数据。关于ContentProvider是如何使用的,我们在之前文章《Android里内容提供者ContentProvider的使用》中已经有介绍过和实例演示。今天主要是对ContentProvider的一些工作过程作分析和学习。ContentProvider的启动过程一般来说,ContentP...

2018-10-15 17:02:53 1141

原创 Android中BroadcastReceiver的工作过程

我们知道,BroadcastReceiver的工作步骤是先注册广播,然后就是发送和接收广播。广播的注册方式分两种,动态注册就是通过代码中使用registerReceiver方法来完成,而静态注册是通过在AndroidManifest.xml文件配置即可,而且静态注册还可以在app不启动也能接收到广播,这是因为在Android系统启动时都会重装装所有的apk,会把静态广播注册到ActivityMan.........

2018-10-14 23:09:22 959

原创 Android中Service的工作过程

Service有两种工作状态,一种是启动状态,主要用于执行后台计算; 另一种是绑定状态,主要用于和其它组件的交互。而且这两种状态是可以共存的,关于Service的使用可以看之前的文章《Android里服务Service的使用》。今天主要是对Service的启动状态和绑定状态的工作原理进行介绍。Service的启动过程要启动一个Service就是使用startService()方法,示例如:...

2018-10-11 21:16:06 988

原创 Android应用程序启动详解(二)之Application和Activity的启动过程

本文承接《Android应用程序启动详解(一)之Android系统和Android应用的启动过程》继续来学习应用程序的启动的那些事。上文提到startActivity()方法启动一个app后经过一翻过程就到了app的入口方法ActivityThread.main()。其实我们在之前的文章中《Android的消息机制(二)之Looper的使用》介绍主线程为何可接收消息时也简单提到过此入口方法。关于主...

2018-10-01 16:36:24 3830 1

原创 Android应用程序启动详解(一)之Android系统和Android应用的启动过程

Android系统的启动过程我们应该都知道Android系统其实是基于Linux系统的。当我们长按下电源启动手机时,引导芯片开始从固化在ROM里的预设代码开始执行。加载引导程序Bootloader到RAM,然后执行。BootLoader是在Linux操作系统开始运行前的一个小程序,它的主要作用是把系统OS拉起来并运行。在系统内核启动后,便会去设置缓存、被保护存储器、计划列表、加载驱动。当内核完...

2018-10-01 16:13:08 4468 2

原创 认识Android中Window(三) 之 Window的创建过程

前面文章有提到,Android中所有的View呈现都是通过Window做到的,像悬浮窗、Activity、Dialog、Toast都是通过Window来呈现的。因为View不能单独存在,它必须附着在Window这个抽象的概念上面,所以有View的地方就有Window。Activity 的 Window 创建过程我们在文章《Android应用程序启动详解(二)之Application和Act...

2018-10-01 15:35:31 1476

Socker长连接Demo.rar

用于博文https://blog.csdn.net/lyz_zyx/article/details/103788305《Android网络编程(十三) 之 Socket和长连接》中演示Socket长连接Demo

2020-12-29

Kotlin的Android实战Demo.rar

Kotlin的Android实战Demo,文章《https://blog.csdn.net/lyz_zyx/article/details/106189740》的示例

2020-05-18

Socket与NIO的Demo.rar

用于博文https://blog.csdn.net/lyz_zyx/article/details/104062815《Android网络编程(十四) 之 Socket与NIO》中演示Socket与NIO使用的Demo

2020-03-03

JNI入门Demo3.0

JNI入门Demo3.0,用于演示JNI中是如何动态注册Native函数。

2019-03-20

JNI入门Demo2.0

JNI入门Demo2.0,用于演示JNI中是如何反调用Java方法的

2019-03-08

JNI入门Demo1.0

JNI入门Demo1.0,用于演示Java代码是如何调用到C++代码

2019-03-08

完整的Android插件化入门工程

这是完整的Android插件化入门工程,当中介绍了宿主和插件的代码合并、资源合并 以及宿主如何调用插件中的Activity的两种方法。

2018-12-11

支持输入工程资源id的Mac版aapt

这是一个通过修改aapt源码进行扩展,支持通过关键字“--PLUG-resoure-id”传入工程资源id的Mac版的aapt文件。

2018-12-07

支持输入工程资源id的Windows版aapt

这是一个通过修改aapt源码进行扩展,支持通过关键字“--PLUG-resoure-id”传入工程资源id的Windows版的aapt文件。

2018-12-07

插件化入门Demo1

这是插件化入门Demo1,介绍了宿主是如何加载起插件化中的代码

2018-12-03

Android中AIDL的Binder连接池Demo

Android中AIDL的Binder连接池Demo。可通过该真实的实例来真正了解实际开发过程中AIDL的Binder连接池的使用。

2018-10-15

Android中AIDL的使用Demo

Android中AIDL的使用Demo。

2018-10-15

Android自绘制Loading控件

Android自绘制Loading控件的Demo。可通过该真实的实例来真正了解实际开发过程中是如何自定义自绘制一个View

2018-01-10

Android中自定义View之流式布局

Android中自定义View之流式布局的Demo,代码中关键步骤并有注释原理解说,轻松掌握自定义View的onMeasure和onLayout的实现

2017-10-10

Android中实现JobScheduler的Demo

Android中实现JobScheduler的Demo

2017-07-05

Android中实现帐户同步Demo

Android帐户同步Demo

2017-06-22

使用Volley上传文件到腾讯云

使用Volley的表单方式将上传文件到腾讯云示例

2017-06-12

空空如也

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

TA关注的人

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