自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(123)
  • 资源 (2)
  • 收藏
  • 关注

原创 登录成功之后的转场动画

<com.charles.dragondelivery.wegiht.ProgressButton android:id="@+id/login" android:layout_width="match_parent" android:layout_height="50dp" android:layout_marginLe...

2018-09-26 17:03:08 717

原创 Bugly多渠道热更新解决方案

这里推荐使用walle来打多渠道包,新一代多渠道打包神器。通过walle或者类似的打包工具就不会改变dex的结构,只是修改APK Signature Block来添加自定义的渠道信息来生成渠道包。配置示例:12// 多渠道使用walle示例(注:多渠道使用)apply from: 'multiple-channel.gradle'创建multiple-channel.gradle,内容如下:123...

2018-05-05 14:40:57 421

原创 腾讯Bugly 热更新 tinker热修复

只要你严格按照以下步骤肯定没有问题的!!先到腾讯Bugly点击打开链接注册第一步:工程的gradle下配置Android  Studio 3.0依赖: classpath "com.tencent.bugly:tinker-support:1.1.1"Android Studio 2.2.2 依赖: classpath "com.tencent.bugly:tinker-support:late...

2018-05-04 23:10:10 695

转载 Android 6.0 的动态权限管理

 大家都知道Android 6.0的新特性之一就是应用权限的管理。也就是说凡是涉及用户隐私的权限,用户可以自己去设置管理了。然而在6.0以前,我们安装一款APP是默认同意此APP所需的所有权限(比如定位、访问通讯录),不同意就不能安装。当然,国内的一些手机厂商基于Android定制的系统中,可以实现在6.0以前关闭指定的权限。如下图:2.危险...

2018-04-25 17:06:42 296

转载 Android CoordinatorLayout+AppBarLayout实现toolbar背景渐变透明

现在很多APP上面都有滚动视图使顶部的Toolbar背景透明度渐变的效果,这种需求有两种实现方式,一种是自定义一个ViewGroup,通过监听scroll或者recyclerview的滚动高度来改变透明度,一种是使用 CoordinatorLayout+AppBarLayout+CollapsingToolbarLayout来实现,因为CoordinatorLayo...

2018-04-05 10:14:43 1374

转载 集成腾讯bugly的热修复功能sdk步骤

本文转载自:点击打开链接首先为什么要集成bugly热修复。市面上有其他的热修复框架,为什么就用bugly?这里给出2张图大家就明白了。引用腾讯bugly官网的一段话:无需关注Tinker是如何合成补丁的无需自己搭建补丁管理后台无需考虑后台下发补丁策略的任何事情无需考虑补丁下载合成的时机,处理后台下发的策略我们提供了更加方便集成Tinker的方式我们提供应用升级一站式解决方案进入正题:接入流程主要是...

2018-03-15 13:41:43 827

原创 android APP上线前,应该准备的东西

人家常说,失败的经历的经历总是惊人的相似,而成功的经历却各有各的不同,我们能做到的就是尽量避免前人已经犯过的错误,从而提高成功的几率。这个是我获得的最重要的经验和教训,在这里记录一下,同时告诫一下大家要注意的,避免犯和我一样的错误。这里从一个Android开发者的角度开始述说一、要有欢迎界面,和...

2018-03-10 16:38:00 658

原创 App上线流程

一.App上线的步骤:1、首先打开安卓市场官网,在右上角找到注册按钮,先注册成为开发者。      这里注意可以上线app应用程序的网站的很多的,手机应用市场行业发布TOP10排名(应用宝、360手机助手、小米、华为、百度手机助手、91、豌豆荚、安智、历趣、沃商店)。2、而后点击“开发者”进入“开发者中心”页面(也可从网页下方的“开发者入口”进入)。3、选择“发布软件”选项,依次上传创建的APP生...

2018-03-10 16:36:52 13428

原创 android实现上传本地图片到网络功能

 compile 'com.squareup.okhttp3:okhttp:3.9.0'xml布局?123456789101112131415161718192021<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/andro...

2018-03-07 17:00:41 1111

转载 Android源码分析-全面理解Context

转载请注明出处:http://blog.csdn.net/singwhatiwanna/article/details/21829971 (来自singwhatiwanna的博客)前言Context在android中的作用不言而喻,当我们访问当前应用的资源,启动一个新的activity的时候都需要提供Context,而这个Context到底是什么呢,这个问题好像很好回答又好像难以说清楚。从字面意思...

2018-03-03 10:28:49 260

原创 Handler 之 源码解析

这篇文章是对 Handler 的源码解析。如果你是初学者,对 Handler 才开始学习,推荐你先看上一篇文章,Handler 之 初识及简单应用,那是一篇对 Handler 的基础讲解,从为什么要有 Handler 到 如何使用 Handler 两个方面对 Handler 进行了介绍,并对我们熟知的常识『Android 中不允许在子线程中更新 UI』做了一个简要的分析。好,下面开始 Handle...

2018-03-03 10:23:17 231

原创 Android Autolayout适配

效果图最大幅度解决适配问题,并且最大化方便开发者。so,看下用法:你没有看错,拿到设计稿,在布局文件里面直接填写对应的px即可,px:这里的px并非是Google不建议使用的px,在内部会进行转化处理。ok,拿一些实际项目的页面,看下不同分辨率下的效果:左为:768 * 1280 ; 右为:1080 * 1920上述两个机器的分辨率差距挺大了,但是完美实现了适配,最为重要的是:再也不用拿着设计稿去...

2018-03-02 23:24:43 474

原创 Glide和Picasso的图片框架的比较

在泰国举行的谷歌开发者论坛上,谷歌为我们介绍了一个名叫 Glide 的图片加载库,作者是bumptech。这个库被广泛的运用在google的开源项目中,包括2014年google I/O大会上发布的官方app。它的成功让我非常感兴趣。我花了一整晚的时间把玩,决定分享一些自己的经验。在开始之前我想说,Glide和Picasso有90%的相似度,准确的说,就是Picasso的克隆版本。但是在细节上还是...

2018-03-02 20:56:57 400

原创 写文章 MVP 在项目中的最佳实战(封装篇)

MVP 在项目中的最佳实战(封装篇)说到MVP,大家应该都不陌生了,由于其高度解等等优点,越来越多的项目使用这个设计模式;然而,优点虽在,缺点也不少,其中一个就是类多了很多,而且V与P直接要项目通信,那么P就得持有V得实例,但如果活动挂掉了,如果没有对V进行释放,还有导致内存溢出得问题,而且,那么多的接口函数,看得到人眼花缭乱,也使得很多人在使用这个模式的时候望而尚步。如果对MVP不了解,可以看我...

2018-03-02 19:59:09 364

原创 区块链为何物?

近段时间,有关比特币的新闻非常吸睛,区块链也跟着火了一把。资本市场上,各种区块链概念股的股价涨跌犹如过山车般惊心动魄。从反应敏锐的资本市场可以看出,区块链正站上风口,受到各方高度关注。一种去中心化的分布式账本数据库,没有中心,数据存储的每个节点都会同步复制整个账本,信息透明难以篡改。什么是区块链?近几年,越来越多的机构开始重视并参与区块链技术研发。从最初的比特币、以太坊,到各种类型的区块链创业公司...

2018-03-01 16:25:13 595

原创 Retrofit对OKhttp的封装

compile 'com.squareup.okhttp3:okhttp:3.4.1' //Okhttp compile 'com.squareup.retrofit2:retrofit:2.0.0-beta4'//Retrofit2所需要的包 compile 'com.squareup.retrofit2:converter-gson:2.0.0-beta4'//Convert...

2018-02-28 12:26:49 694

原创 Binder机制

面试题:Binder是什么?它是如何实现跨进程通信的?Binder的英文原意是“胶水”的意思,其实很形像了。Binder模糊了进程边界,淡化了进程间通信的过程,整个系统仿佛运行于同一个面向对象的程序之中。形形色色的Binder对象以及星罗棋布的引用仿佛粘接各个应用程序的胶水。要理解Binder当然要先从Linux进程说起。Linux进程基础为了保护进程空间不被别的进程破坏或者干扰,Linux的进程...

2018-02-27 21:00:53 446

原创 Walle(瓦力)多渠道打包

签名生成 .jks文件将.jks文件放入 app文件夹下app下 build.gradle 文件配置signingConfigs{ sankuai { storeFile file("keys/db.jks") storePassword "123456" keyAlias "k...

2018-02-27 16:01:05 440

转载 热修复框架Tinker最完整讲解(03)——使用Tinker常见问题

转载请注明出处:http://blog.csdn.net/Alpha58/article/details/74907137前言该系列第一篇文章 热修复框架Tinker最完整讲解(01)——集成之路 主要讲了tinker的集成,第二篇文章热修复框架Tinker最完整讲解(02)——加入Walle多渠道打包主要讲了Tinker与Walle多渠道打包在项目中的使用。这篇文章主要讲讲真实项目中使用Tink...

2018-02-27 10:09:46 932

转载 热修复框架Tinker最完整讲解(01)——集成之路

转载请注明出处:http://blog.csdn.net/alpha58/article/details/74854680前言上个月我们的产品又更新了一个版本,当一个测试把产品上传了十几个应用市场的时候,另外一个测试突然测出一个重要bug。项目经理就说把全部渠道上传的先退回来,重新改好bug再发布。这时候我们就苦逼了,又要走一遍 签名打包->加固->签名->上传应用市场的流程。要...

2018-02-27 10:07:43 1131

转载 [置顶] 热修复框架Tinker最完整讲解(02)——加入Walle多渠道打包

转载请注明出处:http://blog.csdn.net/Alpha58/article/details/74906630前言上一篇文章 热修复框架Tinker最完整讲解(01)——集成之路 已经介绍我们的项目渠道包有20个,并且我们多渠道打包是采用productFlavors实现的。但是这种多渠道打包会造成20个渠道包的热更新就需要20个补丁,这样肯定是不合理的。那怎样才能实现20个渠道包只需要...

2018-02-27 10:06:24 234

转载 Android使用walle多渠道打包

转载:https://github.com/Meituan-Dianping/walleWalle瓦力,Android Signature V2 Scheme签名下的新一代渠道包打包神器瓦力通过在Apk中的APK Signature Block区块添加自定义的渠道信息来生成渠道包,从而提高了渠道包生成效率,可以作为单机工具来使用,也可以部署在HTTP服务器上来实时处理渠道包Apk的升级网络请求。Q...

2018-02-27 10:04:52 846 1

原创 Fragment懒加载

一、背景在Android应用中,ViewPager是我们不可避免使用的一个控件,因为它可以使我们在占用较少空间的同时,增强内容的丰富性,同时以其内部流淌着Google的血液,所以它几乎成了每一个App的标配控件。但是,假如ViewPager的每一个Fragment都需要通过网络拉取数据加载,而ViewPager是默认加载前两项的,所以在很容易造成网络丢包或者网络堵塞等问题,所以Fragment

2018-01-29 12:03:53 194

原创 xUtils的网络请求

准备步骤:使用步骤:1.导入XUtils的jar包(直接搜索依赖)[plain] view plain copy compile 'org.xutils:xutils:3.3.38'  [java] view plain copy import org.xutils.x;    //注意不要被自动导入其他包  

2018-01-28 22:37:38 1565

原创 自定义开关

1.在values目录下创建自定义属性的XML,比如attrs.xml,文件内容如下:resources> declare-styleable name="MyToggle"> attr name="togglePadding" format="dimension"/> attr name="slideColor" format="color"/>

2018-01-24 18:19:05 265

原创 高德地图的集成

1、创建新应用进入控制台,创建一个新应用。如果您之前已经创建过应用,可直接跳过这个步骤。2、添加新Key在创建的应用上点击"添加新Key"按钮,在弹出的对话框中,依次输入应用名名称,选择绑定的服务为“Android平台SDK”,输入发布版安全码  SHA1、调试版安全码 SHA1、以及 Package,如下图所示:需要注意的是: 1个KEY只能用于一个应用(

2018-01-21 19:03:20 506

原创 Java的23种设计模式(Design Patterns)

设计模式(Design Patterns)                                  ——可复用面向对象软件的基础设计模式(Design pattern)是一套被反复使用、多数人知晓的、经过分类编目的、代码设计经验的总结。使用设计模式是为了可重用代码、让代码更容易被他人理解、保证代码可靠性。 毫无疑问,设计模式于己于他人于系统都是多赢的,设计模式使代码编制真正工程化

2018-01-19 18:39:14 336

原创 将web网站转为App

首先添加依赖: testImplementation 'junit:junit:4.12' androidTestImplementation 'com.android.support.test:runner:1.0.1' androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0

2018-01-16 16:19:31 7854 2

转载 安卓的多渠道打包

本文转载自:http://blog.csdn.net/qq_40090482/article/details/789221541.添加友盟统计依赖库[java] view plain copy dependencies {      compile 'com.umeng.sdk:common:latest.integration'      compil

2018-01-16 10:29:56 285

原创 Umeng消息推送

首先到 友盟下载推送的sdk:点击打开链接下载完sdk文档,打开文档中PushSDK的文件包,用studio的import Moudel 导入项目中,将项目和PushSDK的依赖合并!在PushSDK的build.gradle 的下配置: compile 'com.squareup.okio:okio:1.6.0' compile 'com.squareup.wi

2018-01-15 18:56:15 628

原创 区块链到底是个什么鬼?一幅漫画让你秒懂!

正文最近ICO很火,带来了非常多人关注这块。很多人都会问,区块链到底是什么?但说到区块链,网上各种各样的资料满天飞,看完之后,感觉懂了,又感觉完全没懂。 然而,作为程序员更应该了解区块链一句话概括,如果互联网技术解决的是通讯问题的话,区块链技术解决的是信任问题。 妈:“小明啊,什么是区块链?” 我:“(惊!)……妈,你从哪里听来的区块链。” 妈:“隔壁你

2018-01-14 13:53:51 1332 1

原创 Android实现夜间模式切换功能实现代码

添加依赖准备资源让应用继承DayNight主题?1234567891011 @color/colorPrimary @color/colorPrimaryDark @color/colorAccent 新建夜间模式资源文件夹:在res目录下新建values-night文件夹,然后在此目录下新建col

2018-01-14 13:47:29 469

原创 安卓直播送礼物的爱心动画

贝塞尔曲线  import android.animation.TypeEvaluator;import android.graphics.PointF;/** * Created by peng on 2017/11/13. */public class BezierEvaluator2 implements TypeEvaluator { private PointF

2018-01-08 16:12:17 975

原创 PageNavigationView底部按钮+ViewPager

依赖://底部按钮 compile 'me.majiajie:pager-bottom-tab-strip:2.2.5'布局的引用:<LinearLayout android:orientation="vertical" xmlns:android="http://schemas.android.com/apk/res/android" xmlns:ap

2018-01-06 15:08:38 3123 1

原创 android流式布局FlowLayout

一、概述:在日常的app使用中,我们会在android 的app中看见 热门标签等自动换行的流式布局,今天,我们就来看看如何自定义一个类似热门标签那样的流式布局吧(源码下载在下面最后给出)类似的自定义布局。下面我们就来详细介绍流式布局的应用特点以及用的的技术点:1.流式布局的特点以及应用场景    特点:当上面一行的空间不够容纳新的TextView时候,   

2018-01-03 19:11:21 408

原创 友盟第三方登陆和分享

在清单文件中配置:   <meta-data android:name="UMENG_APPKEY" android:value="5a026a8bb27b0a2ed8000186" /> <activity android:name=".umeng.wxapi.WXEntryActivity"

2018-01-03 17:50:53 403

转载 IJKPlayer的视频播放

Android程序员面试宝典本文转载自:https://www.jianshu.com/p/c6620e27a67a运行效果配套视频:http://toutiao.com/item/6431719005085499906/使用步骤1. 在project的build.gradle添加如下代码(如下图) allprojects { repositorie

2018-01-02 14:26:13 401

转载 android:ScrollView滑动到底部显示加载更多

本文转载自:http://blog.csdn.net/su20145104009/article/details/50733463这是效果主要是onTouchListener监听事件,监视什么时候滑到底部同时要理解getMeasuredHeight和getHeight的区别getMeasuredHeight:全部的长度 包括隐藏的getHeight:在布局中展示出来的长

2017-12-29 20:00:59 1422

原创 SwipeRefreshLayout 刷新的功能

<android.support.v4.widget.SwipeRefreshLayout android:id="@+id/srl" android:layout_width="match_parent" android:layout_height="wrap_content"> 下拉刷新,上拉加载:

2017-12-28 17:06:55 307

转载 安卓数据MD5加密

本文转载自:https://www.cnblogs.com/whoislcj/p/5885006.html前言:      项目中无论是密码的存储或者说判断文件是否是同一文件,都会用到MD5算法,今天来总结一下MD5加密算法。什么是MD5加密?     MD5英文全称“Message-Digest Algorithm 5”,翻译过来是“消息摘要算法5”,由MD2、MD3、M

2017-12-22 11:32:43 1346

测试常见问题分析

测试某个APK,可以选择Espresso;测试过程可能涉及多个APK,选择UiAutomator;一些简单的测试,选择Monkeyrunner;

2018-06-22

65个面试常见问题技巧回答

65个面试常见问题技巧回答,让你顺利通过每次的面试! 面试是通过书面或面谈的形式来考察一个人的工作能力与否,物以类聚,通过面试可以初步判断应聘者是否可以融入自己的团队。是一种经过组织者精心策划的招聘活动。

2018-06-22

空空如也

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

TA关注的人

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