为了账号安全,请及时绑定邮箱和手机立即绑定

单例模式,今天你用了嘛

1.前言提起设计模式,可能大家有些人会感觉陌生,有些人会觉得经常使用。其实说到设计模式,不用感到陌生与害怕,其实我们每天在不经意间都在或多或少的使用或者接触设计模式。这篇文章就是想带大家了解最基础的设计模式,单例模式!2.简介单例模式是指,有且只有一个该类的实例化对象,并且实例化过程由这个类自己实现。该类的构造函数是私有化的。3.常见的几种单例模式饿汉式单例模式/**  * 作者:jtl  * 日期:Created in 2019/1/25 15:48  * 描述:饿汉式单例模式...

1030浏览
0推荐
0评论

Android事件分发机制,一篇文章就够了!

说起Android事件分发,网上大大小小的文章不胜枚举,最近项目中遇到了些事件冲突的问题,发现自己对Android事件分发机制掌握的还不够好,于是最近整体学习了一波,虽然不是多么高端的技术,但作为Android知识图谱里的重要一环,必须得牢固掌握,下面这张图是前几天学习过程中记录整理的:事件分发.pngAndroid事件分发简单的来说就是当手指触摸屏幕之后,产生的一系列ACTON_DOWN,ACTON_MOVE(多个),ACTON_UP等事件的去向,一般我们所分析的是Action_down事件的分发过程,因为move和up事件与其基本相同,对于App开发来说,最直观的页面就是Activity,事件分发是从Activity开始一...

4312浏览
0推荐
0评论

手把手讲解 Android插件化启动Activity

正文1.插件化开发的核心难点根据引子中所说,支付宝中各种各样的功能,都是插件形式存在的,那么具体是如何存在?我们所说的插件,其实是apk文件,即 xxx.apk;插件化开发的套路: 外壳app  module + 多个插件Module + 插件框架层library module外壳app 负责整个app的外部架构,并且给插件提供入口组件(比如,用一个button作为“余额宝”的入口,点击button,进入“余额宝” );多个插件Module,负责分开开发各个功能。严格来说,每个功能必须可以单独运行,也必须支持集成到外壳app时运行。插件框架层library module,...

1843浏览
0推荐
0评论

妥妥的去面试之Android基础(三)

笔者由于在近期需要找工作,所以近期最主要的任务就是准备面试,不打无准备之仗。只有你准备充分了,那么你想得到的机会才可能有机会入你怀中。笔者会将准备面试的学习过程记录下来,方便自己复盘的同时也希望能给一道找工作的小伙伴们一些帮助。笔者准备的内容大纲如下Android面试大纲.png妥妥的去面试之Android基础(一)妥妥的去面试之Android基础(二)接下来开始本篇博客的正菜:1.Android中怎么加速启动Activity?1.耗时操作的优化在onCreate方法里做耗时的话会很容易引发卡顿甚至ANR,所以耗时操作放在子线程中完成,使用多线程可以减少onCreate和onResume的时间,让用户尽快看到页面。2.布局文件...

1222浏览
0推荐
0评论

5. gradle配置模板

如果没看懂,可以先看上面几篇文章:2.png主要文件如上图:注意:以下第1、2、 3点是配置信息,第4是寻找配置的文件,第5是最终引用1. app目录下的sign.gradle(test.jks 签名信息)ext {    //签名信息     STORE_FILE = "test.jks"     STORE_PASSWORD = "123456"...

1085浏览
0推荐
0评论

Glide 4.5加载https图片

一、引入库文件implementation 'com.github.bumptech.glide:glide:4.5.0'annotationProcessor 'com.github.bumptech.glide:compiler:4.5.0'//https图片处理implementation "com.github.bumptech.glide:okhttp3-integration:4.5.0"二、重写AppGlideModule/**...

6348浏览
0推荐
0评论

Flutter 即学即用系列博客——04 Flutter UI 初窥

前面三篇可以算是一个小小的里程碑。主要是介绍了 Flutter 环境的搭建、如何创建 Flutter 项目以及如何在旧有 Android 项目引入 Flutter。这一篇我们来学习下 Flutter 的 UI。前言说到 UI,我就简单说下 Flutter 作为一门跨平台语言具有的优势之一,提高效率吧。举个例子:假设现在要开发一个界面,Android 开发需要一天,iOS 开发也需要一天。那么就是两天。如果你用 Flutter 开发,就只需要一天(因为 Android 和 iOS 都可以共用一套 Flutter 代码)。这样效率自然就提高了。另外,假设后面产品发现界面有个位置需要调整,如果是 Android 或者 iOS...

958浏览
0推荐
0评论

Gradle理论与实践:自定义Gradle插件

Gradle插件Gradle可以认为是一个框架,负责定义流程和规则。而具体的编译工作则是通过插件的方式来完成的。比如编译 Java 有 Java 插件,编译 Groovy 有 Groovy 插件,编译 Android APP 有 Android APP 插件,编译 Android Library 有 Android Library 插件。在Gradle中一般有两种类型的插件,脚本插件和二进制插件。使用插件方式可以使得同一逻辑在项目中复用,也可以针对不同项目做个性化配置,只要插件代码支持即可。一、Java Gradle插件Java插件引入方式:apply plugin:...

981浏览
0推荐
0评论

55PLAY区块链游戏平台CEO采访掠影(二)

近日,区块链游戏平台55PLAY的CEO-Bensen在接受某视频媒体专访时,提到了一些有关于55PLAY与区块链游戏的相关话题,倍受行业内的关注,大家都想知道在这位大神的眼中,区块链游戏的未来发展究竟如何,小编正好也在邀请媒体之中,就对此次专访的几个片断进行曝光,先给各位解解馋。这是之前一篇的后继,主要是讲55PLAY如何解决玩家与厂家之间的关系平衡,前一篇点这里主持人:55play作为区块链游戏平台如何服务好区块链游戏项目?Bensen:这里想强调一点,55play作为区块链游戏平台,主要是服务于“区块链游戏玩家”的,这个有别于市场上大多数游戏平台。时下,很多玩家都不知道什么是区块链游戏,甚至很多游戏从业者都没有听过。去年...

1010浏览
0推荐
0评论

【Android】6.0 添加Menu菜单组件、Intent启动活动、显式Intent、隐式Intent

1.0 在helloworld项目基础上创建活动SecondActivity:image2.0 其中main.xml:<?xml version="1.0" encoding="utf-8"?><menu xmlns:android="http://schemas.android.com/apk/res/android"><item     android:id="@+id/add_item"...

1360浏览
0推荐
0评论

【Android】7.0 Intent向下一个活动传递数据、返回数据给上一个活动

1.0 可以利用Intent吧数据传递给上一个活动,新建一个叫“hellotest01”的项目。新建活动FirstActivity,勾选“Generate Layout File”和“Launcher Activity”。image修改AndroidMainifest.xml中的内容:<activity             android:name=".FirstActivity"...

1242浏览
0推荐
0评论

安卓获取当前地理位置(基于GPS和网络)

Manifest文件添加权限:<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"/><uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/>主要代码:GPSUtils.javapackage com.cxyzy.demo;import android.annotation.SuppressLint;import android.co...

4149浏览
1推荐
0评论

安卓实现局部界面遮罩效果

背景列表展示数据时,有些数据因为失效了,需要灰化展示。但是因为每一行数据里面包含多个view(如包含用户姓名、性别等等信息),不方便对每个view进行灰化设置,所以需要一个遮罩层将整行遮盖来达到灰化效果。大致效果如下:解决方案列表的item布局采用RelativeLayout或者ConstraintLayout,在layout中增加一个空的view(遮罩层),刚好能盖住其他view,默认设置为不可见。在adapter里根据数据的有效性设置是否打开这层遮罩层。带遮罩的item布局文件样例如下:其中maskLayer为遮罩层view,如下几点需要重点注意:android:layout_height="30dp"...

4130浏览
0推荐
0评论

RecyclerView 通用Adapter和通用ViewHolder

背景在使用RecyclerView时,经常需要针对特定的页面写viewHolder,相当繁琐。后来看到项目中采用了统一通用的viewHolder,使用相当简单。为了更加通用,对原有代码进行了抽象简化,做成了一个依赖库,直接调用即可。先上效果图:开源代码地址(一共四个类):https://github.com/cxyzy1/commonViewHolder通用adapter基础类:BaseCommonAdapter多布局通用adapter:MultipleCommonAdapter单布局通用adapter:SimpleCommonAdapter通用viewHolder:ViewHolder使用方法:工程根目录下build.gra...

1067浏览
0推荐
0评论

Retrofit源码分析

版本号:2.5.0一.基本使用1.定义请求接口interface GithubService {    //通过注解定义请求的方法以及路径,“{}”里面的表示:该内容是可变的,通过下面方法的参数赋值     @GET("users/{user}/repos")    fun listRepos(@Path("user") user: String): Call<Any>...

1377浏览
0推荐
0评论

Android Architecture Components——Lifecycle

一、前言Android Architecture Components是谷歌在Google I/O 2017大会上发布一套帮助开发者解决Android架构设计的方案。主要包括两大块内容:(1)生命周期相关的:Lifecycle-aware Components(2)数据库解决方案:Room主要架构如下图:image.png其中有主要包含了以下几大组件:Lifecycle、LiveData、ViewModel、Room。下面逐一介绍每个组件:二、Lifecycle  管理组件的生命周期1.Lifecycle介绍Lifecycle 是android.arch.lifecycle...

1093浏览
0推荐
0评论

Android开发高手课之崩溃优化

Android两种崩溃Java崩溃: 在Java代码中,出现了未捕获的异常,导致程序异常退出Native崩溃: 一般都是因为在Native代码中访问非法地址,也可能是地址对齐出现了问题,或者发生了程序主动abort,这些都会产生相应的signal信号,导致程序异常退出。Native崩溃捕获编译端. 编译c/c++代码时,需要将带符号信息的文件保留下来客户端. 捕获到崩溃时,将收集到尽可能多的有用信息写入日志,然后选择合适的时机上传到服务器服务端. 读取客户端上报的日志文件,寻找适合的符号文件,生成可读的c/c++调用栈image.pngBreakPad是目前Native崩溃中最成熟的方案选择合适的崩溃服务腾讯Bugly:...

1680浏览
0推荐
0评论

从零搞懂区块链(8):区块长啥样?

区块是区块链的基本结构单元,甚至“区块链”的名称也由此而来,可见其重要性。本次我们就对区块进行分析解剖,看看里面到底都有哪些东西?文 | 王映图 | 闫燕在区块链网络中,数据会以文件的形式被永久记录, 这些文件称为区块。区块是区块链的基本结构单元,由包含元数据的区块头和包含交易数据的区块主体构成。目前比特币区块链系统大约每10分钟会创建一个区块。一个区块是一些或所有最新比特币交易的记录集, 且未被其他先前的区块记录。新区块会被加入到记录的最后, 一旦写上,...

1816浏览
0推荐
0评论

分叉与减产,牛市或许不远了——3.7日BTC/ETH/EOS/XRP行情分析

在熊市中,我们最关注的就是牛市什么时候来,在牛市中却忽略了什么时候到顶,几乎所有的散户都觉得还会涨,没有顶部。最终套在山顶,要不然就是浮盈都亏掉,本金也慢慢亏完。所以,无论是牛市或者熊市,成功的逃顶和抄底就已经赢了。熊市还在持续,装死等牛几乎是存活在币市的散户的普遍状态。那么牛市还有多久会来?1.分叉与减产的刺激19年比较重要的分叉就是ETH,还有就是LTC的减产。ETH的分叉还算是比较成功,并没有引发行情的剧烈波动,虽然分叉完成之后币价并没有大幅度上涨,但是,没有大跌已经算是表现的不错的,前几轮的ETH分叉,币价基本都会腰斩。并且,本轮ETH分叉面临算力炸弹,减产,矿工逃离等诸多问题,稍微出一点问题,币价必定大跌,从而带动大...

1661浏览
0推荐
0评论

Android-使用productFlavors配置项目移植

原创-转载请注明出处概述有时候需要做两个或多个项目,但都用的同一套代码.只有稍微的一些布局或者代码的改动.我们常规的做法是再切一个分支,再在这个分支上做相应的改动.但比如发现了某一处bug,或者需要统一改个需求.那我们就需要在每一个分支上都进行这种变动.如果项目多的话会很不好维护.下面就介绍怎样通过productFlavors的方式配置项目移植.Flavor在主项目build.gradle中配置productFlavorsandroid{     ...     defaultConfig{     ......

4842浏览
0推荐
0评论
首页上一页1234567下一页尾页
意见反馈 帮助中心 APP下载
官方微信