排序:
默认
按更新时间
按访问量

安卓8.0以上系统的通知栏适配

安卓8.0以上系统的通知栏适配 安卓的通知栏在发展过程中,主要经历了三个阶段,安卓3.0以下——>安卓3.0到安卓8.0以下——>安卓8.0以上。 在3.0之前创建通知栏也很简单 NotificationManager manager = (...

2018-11-16 18:19:08

阅读数:2

评论数:0

compileSdkVersion,targetSdkVersion和minSdkVersion三者的关系

** compileSdkVersion,targetSdkVersion和minSdkVersion ** *compileSdkVersion *定义应用程序编译选择哪个Android SDK版本,通常compileSDKVersion属性值被设置为最新的API版本,例如:25...

2018-07-30 16:13:29

阅读数:102

评论数:0

Android studio 3+版本解决gradle的疑难杂症

新建项目就出错。 报 appt 插件错误 在该文件中配置: 然后把 gradle版本降低到3.0.1 gradle插件和gradle build tool版本对应规则如下:

2018-07-30 11:13:08

阅读数:68

评论数:0

js和java交互

没什么要说的,就是在java调用js函数的时候出现没有反应的情况,最后发现问题是,java调用js的代码需要在主线程中执行,所以用handle.post之后就可以执行了。...

2018-07-05 20:34:44

阅读数:112

评论数:0

适配安卓(Android)7.0文件系统

注: 安卓6.0是权限管理的变更,要想使用危险权限,必须代码中主动请求相关权限;到了安卓7.0中,即使你主动请求了读写权限,你不一定能够读取你想要的文件,因为7.0的文件系统加密了,使用方式和以前不同了,如果app不能即使的兼容7.0的新特性,很可能会导致应用崩溃。 安卓7.0文件...

2018-06-03 12:45:07

阅读数:404

评论数:0

css常用布局的坑

flex布局的用法,详情见:点击这里 在这里写一下使用flex布局的心得,它和float流失布局不一样,使用它基本上可以只用一个层级就可以完成所有的布局,因为他是自起始端到末端,线性布局,可以设置自动换行和线性的方向。 flex布局设置了wrap(自动换行),它的子view如果需要主动换行的...

2018-05-07 17:55:43

阅读数:110

评论数:0

微信小程序自定义组件TabLayout(类似于今日头条的滑动菜单)

有了安卓开发经验,自定义微信小程序组件简直易如反掌。 自定义微信小程序的步骤如下: 建立四个文件 分别是逻辑控制js,配置文件json,布局文件wxml,样式文件wxss。 配置文件.json的编写 component参数:说明这个文件夹是组件文件夹; usingCo...

2018-05-07 14:47:09

阅读数:640

评论数:0

android组件化打包module遇到的问题总结(打包成aar)

在一开始接触APICLoud平台的时候我是拒绝的,因为对于一个有着熟练的java技能,掌握着老旧设计模式的人来说,这种平台简直就是对于程序员这个职业的侮辱。第一个原因是APICLoud平台剥离了原生开发和html+js开发的职责,使得原生开发的职业方向越来越窄,开发中的地位也逐渐下降;第二个原因是...

2018-04-28 11:36:24

阅读数:950

评论数:0

高并发一致性解决方案

高并发场景有抢红包,双十一抢商品等。如何去处理这些高并发场景呢? 1.从存储介质考虑:有内存缓存和磁盘缓存,内存缓存的速度是比磁盘缓存要高出几十倍的,因此可以考虑存储介质在内存上。想象一下如果抢红包的时候同时有2万个请求到达服务器,我相信使用数据库来储存这些红包数据的话,服务器会爆掉的,就算不爆...

2017-11-19 20:56:10

阅读数:4173

评论数:0

做后台遇到的几个问题

1.选用框架SSH已经被淘汰,流行的是SSM,加上现在的微服务的概念,趋势是越来越轻型,越来越小型化,所以框架的持久层选用mybaitis,资源管理万年不变的spring,整个架构springmvc。正式这种概念的产生让我对后台越来越感兴趣。 我在做安卓开发的这段时间里面,看了比较多的框架设计的东...

2017-11-12 23:03:35

阅读数:142

评论数:0

RxJava的源码分析

基本结构我们先来看一段最基本的代码,分析这段代码在RxJava中是如何实现的。Observable.OnSubscribe<String> onSubscriber1 = new Observable.OnSubscribe<String>() { @Overrid...

2017-10-12 19:47:52

阅读数:137

评论数:0

Retrofit的动态代理

Java中的动态代理: 首先动态代理是区别于静态代理的,代理模式中需要代理类和实际执行类(被代理的类)同时实现一个相同的接口,并且在每个接口定义的方法前后都要加入相同的代码,这样有可能很多方法代理类都需要重复。而动态代理就是将这个步骤放入运行时的过程,一个代理类只需要实现Invocati...

2017-10-12 15:11:54

阅读数:400

评论数:0

Spring注解的实现原理

要理解java注解首先要掌握几个概念,第一字节码中的attribute_info区域的作用,第二java反射,第三xml的解析。注解起作用的过程中,注解信息只起着配置信息的作用,注解没有行为,没有动作,就把它看成是存储在attribute_info中的一段字符串就行了。1.字节码中的attribu...

2017-08-11 16:38:29

阅读数:436

评论数:0

Android视频直播原理

最近视频直播简直火的一塌糊涂,为了能赶上这趟顺风车飞起来,我决定研究一下视频直播方面的知识,为以后的进阶做准备。先梳理一下直播的流程: 硬件采集——>处理(滤镜水印)——>编码和封装——>推送到服务器——>服务器分发——>播放器流播放(视频流的解码和读取) 1.采...

2017-07-14 10:25:22

阅读数:296

评论数:0

动态代理实现方法以及对象HooK

上一篇文章里面已经把动态代理的作用以及实现方法分析了一下,很明显我们可以用HooK做很多事情,比如例子里面的代理做了拿了回扣和偷换行货这种肮脏龌龊的事情。在真正应用的时候我们可以做更多的事情,比如用户登录的时候动态代理他的验证方法,是不是就可以获取用户的账号密码呢?还有比如Activity的启动,...

2017-07-13 18:19:21

阅读数:1025

评论数:0

java动态代理

java代理模式在java程序设计中非常常见,比如说在spring框架中,使用的aop功能,就是动态代理的方式加入我们的切面功能,从而不会侵入到原始代码中而带来增强功能的效果,在java代理模式中,我们又将代理模式分为静态代理和动态代理。静态代理静态代理,就是继承相同的接口,然后把需要被代理的类当...

2017-07-13 13:32:07

阅读数:340

评论数:0

从编译角度看java域和方法

上图展示了,我们java类是如何从java字节码文件中加载到内存中,再从内存中解析到方法区中的。java域的编译而我们的java域初始化是在解析和初始化这两个阶段完成的,解析先把域中基本类型和String类型初始化为0和“”,域中引用类型初始化为null(系统默认设置),然后在初始化阶段进行和的初...

2017-07-09 15:07:24

阅读数:417

评论数:0

从编译过程看内部类和lambda表达式

什么是内部类内部类按名称分为:匿名内部类,和非匿名内部类。 非匿名内部类又分为:静态内部类和非静态内部类。有时候我们会发现,修改外部类的某个方法使得它访问了内部类的某个方法,编译之后就会发现字节码中会多出来一个额外的方法,所以为了了解原理,还是要看看编译期间它到底做了什么。第一点我们都知道,内部...

2017-07-09 13:36:30

阅读数:1137

评论数:2

从编译过程看java的泛型

为什么需要泛型? 在1.5之前是没有泛型的,而通常使用object来泛化我们所有的对象,这样做也可以让我们达到泛型的目的,但是在代码编写的过程中很容易出现类型转换的错误,这种错误在编译期间是不知道的,只有到运行期间才知道。 比如: List list=new List(); list...

2017-07-09 12:30:14

阅读数:975

评论数:0

理解AsyncTask的工作原理

Android中子线程主要有AsyncTask、IntentService、HandlerThread。 来看一看AsyncTask的原理,在使用的时候,AsyncTask在4.1版本之前是需要在主线程内创建的,4.1之后就可以随便在哪里创建了,原因在于AsyncTask和主线程通信也是通过ma...

2017-07-02 16:41:58

阅读数:275

评论数:0

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