自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(40)
  • 收藏
  • 关注

原创 组件化开发的依赖总结

1.组件化结构: app主项目 + library1库+library2库1.一般情况主项目app依赖library1和library2:只要添加依赖库,就可以直接调用library中的方法了。但是如果要是想直接调用library库中的远程依赖或者jar,那么需要library库在添加依赖的时候使用api而不是implementation。2.app可以直接依赖library,也可以直接依赖library生成的aar。aar可以把代码 资源文件 布局 以及libs下面的jar都打进去,所以app..

2021-12-08 17:25:49 1933

原创 复制项目到其他电脑的AS上,出现大面积的蓝色现象

复制代码到另外一台电脑上,偶尔会出现大面积的java类是蓝色的,好像和git不一样,实际比较下发现是一样的。 不影响更新和提交,这种问题的处理办法:1.到指定项目下,找到.git/index,将该文件删除;2.然后执行git reset...

2021-05-13 14:44:03 155

原创 Push rejected: Push xxxx to origin/xxxx was rejected by remote问题

这个问题查了好久终于解决了,下面分享下我的解决步骤:1.git push -u origin xxxx -f2.第一步输入之后会有对应的错误提示。 我的错误提示为: git的账户 邮箱 和git服务上面添加的不一致导致的。此时需要将自己本地的改成和服务上的一致。如下: git config --global user.name "输入你的用户名" git config --global user.email "输入你的邮箱" ...

2021-04-07 20:39:01 4627

原创 Android数据库的使用

前言对于Android开发开说数据库应该很熟悉了,但是要从实际操作的角度来说,可能未必能够熟练的使用。当然,不是所有的APP都需要使用数据库,因为这个东西确实比较重。但是如果碰到一些特别大的项目尤其是包含即时通讯,消息,频繁的大数据的存储和操作,基本上都会使用数据库,比如:银行类APP,聊天类APP,大型官网的APP。此类型的项目中需要对数据库进行统一封装:数据库的创建,表格创建,数据库的增,删,改,查,以及更新数据库等操作。话不多说,直接从代码的角度去从头开始撸起来!一、数据库的...

2021-03-27 22:48:00 3626

原创 关于APP唤醒的方法总结

对于一些比较大型的项目,业务中可能会有其他APP的入口。一般分为两种:1.项目中内嵌一个友商的SDK(集成了部分业务的SDK) 2.唤醒友商的SDK(主要是已经安装的app),今天主要说下唤醒吧。 1....

2020-08-10 10:31:32 2870 2

原创 关于暗黑模式

Android客户端AndroidQ开始已经支持暗黑模式了,体验也挺好的,所以一些很多大型的APP也都会对此进行适配。适配的方法大致分为两种:1自定义的方式:新增一套night的文件,根据UI设计对drawable和colors ,style 等进行个性化适配,这种适配的优点就是可根据需要达到想要的效果。(具体细节网上很多,很详细)2.在...

2020-07-24 09:44:04 894

原创 如何修改三方构件的布局

很多时候 我们的项目引用了三方构件,有些是无法修改的,但是又项目中又需要修改怎么办呢?要修改只要获取xml里面的控件就行了,下面给大家介绍一个神器:AQuery mAquery=new AQuery(this); Button bt=-(Button)mAquery.id(R.id.haha).getView();就这么简单,希望能够帮助大家!...

2020-04-24 09:36:38 152

原创 关于监听Android的静音键以及音量按键

最近项目中涉及到物理键以及静音的监听,上来就写了个BrocastReceiver,然后注册,处理。但是在测的时候发现,在不同的手机上的这块的onReceive()回调是有不一样的,以下为总结:1.类型一:有背景音乐播放的时候 音量上下键调节的是媒体音量,否则调节的是系统音量2.类型二:按上下键只调节一个音量,媒体音量。3.类型三:按上下键虽然只显示是调节一个音量,但是会在媒体音量变化的...

2020-04-14 17:15:43 3076

原创 android向H5频繁JS回掉的时序错乱问题

逻辑是这么滴: 客户端需要时刻监听者音量的改变,然后通知给网页。当操作音量按键特别频繁的时候回调给网页也会很频繁,如果网络特别好的情况下几乎都是正常的,如果网络不稳定会出现一个问题,就是网页接收的数据可能会发生错乱。 比如客户端传递12345 网页收到的可能是12354,如果它涉及到网页的某些逻辑,那么网页的处理也会出现问题。处理方法:就是传递的时候可以多加一个时间戳字段,这样网页接收到的...

2020-04-13 18:56:26 229

原创 Service的知识

Service看过很多遍,今天尝试着自己实践和总结一下。主要讲解Service的启动方式(同一个进程和不同进程)以及特点,交互(包括AIDL)一:Service的启动方式有两种,一种是startService,另一种是bindService 1.创建一个Servicepublic class MyStartService1 extends Service { ...

2020-03-31 18:14:57 225

原创 友盟推送,分享的注意事项

因为开发文档上面都很详细,或者请教下技术客服,所以那些常规的就不写上面,主要写一些遇到的坑。1.不管是友盟Push还是分享 有两种集成jar库和远程compile依赖:api 'com.umeng.umsdk:common:2.1.0'//友盟分享api 'com.umeng.umsdk:share-core:6.9.4'api 'com.umeng.umsdk:share-boa...

2020-01-10 15:10:21 286

原创 关于环信的集成总结

之前的开发,我并没有集成通讯类的SDK,所以这次就试试。我选择了环信IM,他提供了两种一种是快速EaseUi集成还有一个就是根据文档以及API去集成,个人感觉EaseUi已经挺不错了,我们稍微增加,删除或者替换替换基本可以满足大部分需求。我是作为一个开发者本着想多了解一点的想法就慢慢去集成了。我很难去把我锁集成的每个细节以及问题有写出来,但是思路可以理理1.集成所需要的依赖之类的东西2...

2020-01-10 15:08:50 272

原创 DataBinding的使用

最近的一个项目使用的是MVVM框架,由于之前没有使用过所以初次使用还是费了一点时间的。框架本身的思路不难理解,但是要想在这个框架中进行很流畅的开发,DataBinding的熟练使用时最基本的前提。话不多说今天就总结下常见的绑定用法。简单说DataBinding使用流程:android { dataBinding { enabled true } }1.选...

2019-08-24 17:50:14 810

原创 Gradle 的常见错误

1.在您的应用程序的 build.gradle 添加以下内容:(任意位置,一般放在外层) configurations.all { resolutionStrategy.force'com.google.code.findbugs:jsr305:1.3.9'} 强制Gradle只编译您为所有依赖关系声明的版本号,而不管依赖关系已声明的版本号。2. 当编译版本...

2019-08-24 14:10:02 1406

原创 gradle常见错误

1.错误:::java.lang.NoClassDefFoundError: Failed resolution of: Landroid/support/v4/animation/AnimatorCompatHelper;解决::compile('com.android.support:design:27.1.1'){excludegroup:'com.and...

2019-06-13 00:00:01 308

原创 无效安装包,与操作系统不兼容

第一次运行apk能够直接安装,但是卸载之后,AS直接是运行安装会失败,另外把output--->debug.apk放到手机里面进行安装会提示:无效安装包,与操作系统不兼容。 一开始我以为是哪里配置或者设置不对造成的,瘦了好多,尝试都没有用。解决办法:方法1:adb uninstall 项目的包名 。 然后再次运行即可安装。下面是搜到的原因:第一,每个安卓软件...

2019-06-12 20:42:18 24262

原创 在java代码里面动态修改 不同状态的Drawable或者TextView的字体

//1.获取Drawable的使用private Drawable getDrawable(String rootPath, String home_unselect, String home_select) { try { Drawable unselectDrawable= Drawable.createFromPath(rootPath + "/" + ho...

2019-05-16 13:51:13 369

原创 任务栈管理

import android.app.Activity;import java.util.Stack;public class CommonActivityManager { //Activity堆栈 private static Stack<Activity> activityStack; private static CommonActi...

2019-04-29 15:49:29 269

原创 自定义Dialog

1.自定义package com.example.myaudiorecoder;import android.app.AlertDialog;import android.content.Context;import android.os.Bundle;import android.view.View;import android.widget.TextView;/** ...

2019-04-26 11:48:49 174

原创 FragmentTabHost

package com.example.myfragmenttabhost;import android.app.FragmentHostCallback;import android.support.v4.app.Fragment;import android.support.v4.app.FragmentTabHost;import android.support.v7.app.A...

2019-04-26 11:16:55 296

原创 FileUtil 常用IO流操作

import android.annotation.SuppressLint;import android.content.Context;import android.graphics.Bitmap;import android.graphics.BitmapFactory;import android.os.Environment;import android.util.Base...

2019-04-26 11:03:26 1342

原创 Android 内存优化

简述:内存溢出 out of memory:是指程序在申请内存时,没有足够的内存空间供其使用,出现out of memory;内存泄露 memory leak:是指程序在申请内存后,无法释放已申请的内存空间,一次内存泄露危害可以忽略,但内存泄露堆积后果很严重,无论多少内存,迟早会被占光。今天主要讲的是内存泄漏,这个问题在开发中是挺常见的,因为避免不了的我们要使用到:单例,动画,广播,数...

2019-04-25 00:53:05 74

原创 九宫格手势解锁控件

此九宫格手势自定义控件虽然比较简陋,但是也基本实现了如下功能:1.默认显示九个小内圆,实心圆。 另外提供了,设置其半径,初始化颜色,以及选中之后的颜色2.如果选中了小内圆,对应的也显示外圆环。 另外提供了,选中时候的颜色,以及失败的时候的颜色的设置3.连线的绘制,在触摸滑动的过程中选中的点为联络站进行绘制路径。另外提供了 触摸时候连线的颜色以及失败的时候的颜色设置4.手指离开触...

2019-04-25 00:21:58 436

原创 EditText输入校验法以及关闭软键盘的正则校验

对于EditText输入的校验限制。使用InputRule.applyRule(Editetxt, "linkMan");import android.text.Editable;import android.text.InputFilter;import android.text.InputType;import android.text.TextWatcher;i...

2019-04-22 17:27:14 285

原创 RxJava+Retrofit+Okhttp 的源码解析

RxJava+Retrofit+Okhttp前两年到现在一直都挺火的一个网络请求框架,Retrofit是对OkHttp的一个封装,RxJava的加入又实现了链式调用,使得后续的复杂处理,切换线程等操作变得很简单。虽然用着爽,但是有些问题还得自己解决。比如:Activity在Destroy或者点击返回键主动取消网络请求。https://www.jb51.net/article/159371.ht...

2019-04-22 01:50:29 558

原创 权限请求工具类

package example.emas.com.myweexpeoject;import android.annotation.TargetApi;import android.app.Activity;import android.app.Fragment;import android.content.DialogInterface;import android.content....

2019-04-21 00:28:35 202

原创 Activity的启动流程简述

在Activity 中发起=====>@Overridepublic void startActivity(Intent intent, @Nullable Bundle options) { if (options != null) { startActivityForResult(intent, -1, options); } else { ...

2019-04-21 00:25:06 23906

原创 Git 在AS上的操作总结+图解(仓库创建,分支的创建,切换,更新,合并,版本回退)

简述:本文主要是按顺序进行描述的:创建仓库--》创建项目--》关联并提交---》创建分支---》将分支合并到主分支上去--》版本的回滚---》分支的更新--》以及一些注意事项使用AS创建一个项目1.创建本地仓库(就会在选中的目录下面创建一个git仓库)关联本地库成功之后(代码会变成红色)2.将工程添加到git版本控制添加成功后代码颜...

2019-04-18 10:59:58 1686

原创 Tinker 使用

Tinker时微信推出的热修复框架,优点就是很稳定,可以gradle打包,缺点是这个修复不是实时的,需要重启。这是由于其实现的原理决定的,简单的说他是通过把生成的不定apk,加载进来,通过与基线apk的整合生成新的dex集合,最后生成oat文件。这只是整合成的文件而已,并没有影响ClassLoader的加载既存在的dex类。而重启之后Tinker会通过反射获取BaseDexClass...

2019-03-18 10:33:21 1106

原创 MessageDeliver轻型消息工具-----观察者模式的应用

package com.example.myobserver;import android.os.Message;import java.util.ArrayList;import java.util.List;/** * Created by max on 2016/7/16. * 根据观察者模式 封装的发送消息的机制 * 类似于EventBus * 触发发送的时候,会...

2019-03-12 02:21:10 438

原创 Handler机制详细解析

简述1: Android机制中有个限制,子线程是不能够访问UI的,否则会报错。而主线程中不允许执行耗时操作,因为如果在一定的时间没有处理完,就会阻塞主线程而出现ANR异常。所以一些耗时的任务,比如IO流读写,网络请求等操作就需要创建一个子线程中去处理,任务结束后如果涉及到UI的更新操作,就必需再切换到主线程中去做后续的处理。而这个线程的切换就用到了Handle这么一个机制。简述2:H...

2019-03-12 02:17:12 663

原创 自定义控件总结---onMeasure onLayout onDraw深入解析

对于一个Android开发来说,不管你有多不喜欢自定义控件,你都得和她谈一场恋爱。所以我主动谈了这场很费脑子的恋爱,因为阅读源码的能力不好,在寻根抛底的找线索的过程中,搞得反胃,不过最后还是把来龙去脉都捋了一遍。当然今天的角不是常用且高效的组合型自定义控件,而是纯粹绘制出来的View或者重新定义规则的一个ViewGroup。 简述1:启动Activity的时候会创建...

2019-03-10 17:58:51 655

原创 BroadCastReceiver总结

BroadCastReceiver是Android的四大组件之一,主要功能就是发送消息,监听消息,然后根据业务进行逻辑处理,可以在应用内部,也可以是应用之间使用。从应用内部的消息,数据传递这个功能来说,现如今有很多开源的框架可以实现,比如EventBus 或者使用观察者模式自定义封装一个消息发送机制,也都挺好用的。当然今天的主角是BroadCastReceiver。一.静态注册:...

2019-03-01 00:30:33 439

原创 MultiType的简单使用

在开发的过程中我们需要实现一些UI效果图,如果UI界面比较简单,清晰,我们就按正常的思路写布局即可。但是如果面对比较复杂UI界面,我们还按正常的思路从上到下使用一些常用的控件,可能代码逻辑就会很复杂。另外如果后续迭代进行局部或者大范围的更改,可能会很头疼,看也得看半天。比如看下面的例子:                         上面两个图是比较复杂的,如果我们用RecyclerVi...

2019-02-24 00:19:02 4105

原创 Android动画的使用

  在开发项目的过程中几乎都会使用自定义控件,无论是组合型的或者画出来的。而要想使自定义控件满足我们所希望的各种效果,就必须得掌握动画的使用,今天就来总结一下如何使用。在Android动画中,总共有两种类型的动画1.View Animation(视图动画): View Animation:Tween Animation(补间动画)和Frame Animation(逐帧动画);  2.Pr...

2019-01-15 16:28:59 281

原创 JsBridge交互框架的使用

                                   JsBridge交互框架的使用现在很多App都采用了混合开发,对于展示性强的界面,可以用H5去实现;功能性强的的可以在用native实现。在混合开发中可以说native和JS进行交互肯定是要涉及到的,当然如果你们项目不是混合开发,某些地方只是需要展示一下H5界面即可,也就涉及不到这块。说到交互,虽然Android系统为我们提...

2019-01-07 16:53:21 2690

原创 组合型自定义控件

自定义控件可以分为三种: 1.完全自定义绘制+事件,动画的逻辑处理  2.继承某个ViweGrop或者View+事件、动画的逻辑处理 3.组合型自定义控件(一般只是点击事件,隐藏显示,文字,等等逻辑处理) 。  第三种是最简单的,在开发中也是非常实用的,可以省去很多麻烦,节省时间。今天就是对它进行一个总结,下面以自定义布局显示框为例进行讲解。步骤一:首先写一个布局,能实现自...

2018-12-15 14:52:40 184

原创 Fragment的总结(各种情况下的生命周期+懒加载)

Fragment是一个很熟悉的朋友,几乎大部分的APP都会使用它。但是使用起来却不是很简单,在不求甚解的情况进行在使用它进行一些细节处理的时候会比较混乱。在一番尝试和查阅资料之后进行一番总结,可能会有不对的地方,还请发现的朋友们给于指证。Fragment的生命周期:借鉴别人的一个图吧,一目了然。一 fragment切换有两种方式 1 :用add  hide show       2 :...

2018-12-13 03:39:35 1235

原创 状态栏总结(沉浸式状态栏+状态栏颜色+状态栏字体的颜色)

今天总结一下状态栏的使用,当然也是参考别人的。但是总归自己得试试,然后把常用的几种情况记下来,因为这些东西是死的,下次拿过来就可以用。一. 沉浸式状态栏  :Android 5.0以上才会支持沉浸式状态栏效果。 下面就建立一个默认的项目。1.状态栏(背景色是蓝色,字体图标是白色的)2.ActionBar,一般都不用的 3.内容 4.虚拟键。       所谓沉浸式状态栏就是只有3着哭泣区域占据...

2018-12-12 22:37:17 7584

原创 ButterKnife的使用

之前一直使用ButterKnife很好用也没有出现过什么问题,但是最近由于在写一个组件化项目,使用的时候还是踩了很多坑。这里我就单个Module这种项目以及组件化项目中的使用包括一些注意事项给分享一下,有什么错误或者不足,多多指教。一  :普通项目(只有一个Module)1.工程buidle.gradle 2.在Module的buidle.gradle中二:组件化项目...

2018-12-09 22:41:08 110

执业医师聘用模板免费下载

执业医师聘用模板免费下载

2023-10-17

空空如也

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

TA关注的人

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