- 博客(15)
- 资源 (17)
- 收藏
- 关注
原创 Android Gradle使用详解(六) 之 如何解决65535方法限制
当我们工程版本迭代和业务需求越来越多时,代码量自然也就越来越多。所以在日常开发中会难免会碰到方法个数超过限制65535的错误。原因就是:Java源文件在打包成一个DEX文件,这个文件就是优化过的、Dalvik虚拟机可执行的文件,Dalvik虚拟机在执行DEX文件时,它使用了short这个类型索引DEX文件中的方法,这意味着单个DEX文件可以被定义的方法最多只能是65535个,当超过这个数量时就会发...
2018-10-30 12:01:17 1174
原创 Android Gradle使用详解(五) 之 如何配置App版本号和动态生成App版本号的方法
我们清楚知道,几乎所有的软件都是存在一个版本号的东西,APP作为手机上的应用软件也不例外。版本号可以帮助APP升级使用和定位问题。一般地,版本号有3部分构成:主版本号、副版本号 以及 补丁号,例如:1.0.123。也可以是单一个主版本号,格式没有严格要求。方法一、直接配置在build.gradle文件我们在前面的博文《Android Gradle使用详解(三) 之 Android Grad...
2018-10-26 18:03:30 4080
原创 Android Gradle使用详解(四) 之 如何安全配置APK包的签名
我们在《Android Gradle使用详解(三) 之 Android Gradle插件配置详解》中有简单介绍过signingConfigs{}配置及其使用到的字段意思。它是用于给 一个APP签名配置的。一个APP只有在签名这后才能被发布、安装和使用,签名是保护APP的方式,它能标记APP的唯一性,防止恶意篡改。一般地我们在开发过程中使用的debug编译模式时,Android SDK已帮我们打上了...
2018-10-26 16:06:32 871
原创 Android Gradle使用详解(三) 之 Android Gradle插件配置详解
通上前两篇博文由浅入深的学习Gradle的基础和Gradle的Java插件相关知识后,现在终于到了高潮部分了,让我们来进一步正式学习Android Gradle插件。前面提到,Android Gradle插件是一个基于内置的Java插件来实现的第三方插件,它是由google的Android团队开发的。1 分类Android Gradle插件根据我们Android工程的属性分为三类: ...
2018-10-25 20:27:54 4868 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 275
原创 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 626
原创 Android中AIDL的使用(一) 之 AIDL经典示例
在Android开发中IPC(Inter-Process Communication的缩写)多进程通信的使用场景很多。一般地由于某些功能模块需要特殊原因运行在单独的进程中,又或者为了加大一个应用可使用的内存,因为Android对单个应用使用的最大内存是有限制的,又或者需要做一些非常耗内存而又不好回收的事情,在事情完成后直接结束掉进程,等。开启多进程模式很简单,就是给四大组件指定android:pr...
2018-10-15 17:39:33 1964
原创 Android中ContentProvider的工作过程
ContentProvider是一种内容共享型组件,它通过Binder向其它组件乃至其它应用提供数据。关于ContentProvider是如何使用的,我们在之前文章《Android里内容提供者ContentProvider的使用》中已经有介绍过和实例演示。今天主要是对ContentProvider的一些工作过程作分析和学习。ContentProvider的启动过程一般来说,ContentP...
2018-10-15 17:02:53 1142
原创 Android中BroadcastReceiver的工作过程
我们知道,BroadcastReceiver的工作步骤是先注册广播,然后就是发送和接收广播。广播的注册方式分两种,动态注册就是通过代码中使用registerReceiver方法来完成,而静态注册是通过在AndroidManifest.xml文件配置即可,而且静态注册还可以在app不启动也能接收到广播,这是因为在Android系统启动时都会重装装所有的apk,会把静态广播注册到ActivityMan.........
2018-10-14 23:09:22 961
原创 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 3832 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
2020-12-29
Kotlin的Android实战Demo.rar
2020-05-18
Socket与NIO的Demo.rar
2020-03-03
支持输入工程资源id的Windows版aapt
2018-12-07
Android中AIDL的Binder连接池Demo
2018-10-15
Android中自定义View之流式布局
2017-10-10
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人