自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(45)
  • 资源 (3)
  • 收藏
  • 关注

原创 ReportFragment cannot be cast to ReportFragment

环境Replugin插件框架问题原因问题原因的分析这段文字没有经过润色,纯粹是初稿,不一定易于阅读,这段看不下去的同学可以直接看文章最后的解决方案。ReportFragment是android.arch.lifecycle组件中的类,lifecycle组件中的ProcessLifecycleOwnerInitializer继承自ContentProvider,利用ContentProv...

2020-03-10 18:26:05 2314

原创 解决在现有Android项目中集成Flutter遇到的问题

如何添加Flutter到现有Android项目Flutter官方有详细的文档, 参考文档即可。集成过程中遇到的神坑主Module名称一定要为"app"如果主Module名称不是"app", 执行Flutter#createView后,会出现native层的崩溃。并且会出现错误信息VM snapshot must be valid, 崩溃信息如下:#1 mainSIGABRT解析原...

2019-02-13 15:50:30 1569 1

原创 ConstraintLayout

官网添加约束父布局的约束如图添加了A控件和其父布局左侧的约束,它们之间的间距可以调整。互相约束控件可以两两之间约束,B在A右侧,C在A下方。B和A不必上下对齐,B可以上下移动。对齐控件之间可以在相同一侧对齐,对齐后也能再设置偏移。基准线对齐控件之间可以互相以文字基准线对齐。Guideline约束可以在横竖两个方向创建不可见的引导线,可以用绝对距离或百分比距离定义...

2018-10-26 13:16:44 462

原创 Gradle中的常量

定义常量以Android为例,在根目录下有一个gradle.properties文件,可以在该文件中定义常量:BUILD_TOOLS_VERSION = 26.0.2 //字符串不要加引号。COMPILE_SDK_VERSION = 26TARGET_SDK_VERSION = 23MIN_SDK_VERSION = 15使用常量在.gradle文件中,直接引用常量的...

2018-06-21 10:48:45 1791

原创 Android 圆角边框RoundRect原理

绘制圆角矩形的方法 /** * Draw the specified round-rect using the specified paint. The roundrect will be filled or * framed based on the Style in the paint. * * @param rect The rectangul...

2018-06-21 10:48:21 3916

原创 ANR分析

产生ANR的原因While your activity is in the foreground, your app has not responded to an input event or BroadcastReceiver (such as key press or screen touch events) within 5 seconds.While you do not hav...

2018-06-19 13:58:36 2181 1

原创 Android Dialog宽度match_parent

Dialog满宽的两种方式首先为Dialog设置Style <style name="MyTheme.Dialog" parent="@android:style/Theme.Dialog"> <item name="android:windowFrame">@null</item> <!-- 边框 --&a

2018-06-13 14:17:53 2432

原创 Git快速克隆大项目

有些项目非常庞大,例如android源码,如果只是想获取项目的代码以及之后的更新,而不需要care该项目的历史提交记录,那么可以只克隆某个分支的最后一次提交。选择克隆单个分支git clone --branch <branch_name> <remote-address>只克隆最新的提交记录git clone <remote-addre...

2018-04-03 14:09:26 5713 1

原创 Warning: can't find referenced field/method '...' in library class ...

打release包时,proguard可能会报以下警告导致打包失败: Warning: can’t find referenced field/method ‘…’ in library class … Warning: can’t find referenced field/method ‘…’ in program class …原因项目中的代码引用了jar包中的某个方法或变量,

2018-03-01 21:25:27 911

原创 MVP-MVVM

MVPModelModel提供用户界面需要显示的数据,包括从服务器获取数据、从本地缓存获取数据等数据操作。ViewView层应该尽量的精简,负责显示数据和用户交互。MVP下Activity和Fragment体现在了这一层,Activity一般也就做加载UI视图、设置事件监听再交由Presenter处理的一些工作,所以也就需要持有相应Presenter的引用。Pr

2018-01-04 19:51:58 333

原创 Android Architecture Components

开发者经常面临的问题 Android应用由四大组件构成,各组件可以被独立且无序的调起,用户会在各个App之间来回切换。组件启动后,生命周期会受用户的操作和系统影响,不完全受开发者控制。而由于设备内存问题,进程随时可能被系统强杀,所以不要将数据和状态直接存储在组件中,也不要让组件互相依赖。问题实例内存泄漏:在Activity中发起网络请求,在网络请求返回之前退出Activit

2018-01-04 19:51:15 728 1

原创 设置以渐变、图片为背景的状态栏

如何改变状态栏颜色 设置app的主题,状态栏的颜色就是colorPrimaryDark的颜色。但是只能设置纯色。 <!-- Base application theme. --> <style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar"> <!-- Customize your theme

2017-12-28 17:43:25 497

转载 解决设置状态栏透明后,软键盘弹出遮挡输入框的问题

当主题中用了<item name="android:windowTranslucentStatus">true</item>后,软键盘弹出就不会将输入框往上推了,该类可以解决这个问题.package com.xunlei.thundervideo.util;import android.app.Activity;import android.graphics.Rect;import andro

2017-12-28 17:41:16 1986 2

原创 Android搜狗输入法搜索栏

背景:采用搜狗输入法在应用中所有的中文输入框输入内容时,搜狗的联想搜索栏都会出现,而且不会顶起输入框,导致输入框被盖住。结论搜狗输入法有一个应用名单,通过包名进行判断。例如UC浏览器、手机迅雷等应用就会开启搜索栏;微信、QQ等应用就不会开启。根据EditText的impOptions:”actionSearch”属性决定是否对该EditText开启搜索栏。我们应用中的EditText不管是否

2017-11-23 18:36:29 974

原创 内存不足导致应用进程被杀

应用处于后台时,如果手机内存不足,应用进程会被强制杀掉. 如果通过最近打开的应用列表回到应用,那么首先会调起Application, 然后会恢复被杀之前的Activity, 如果Activity中含有Fragment, 那么Fragment也会被创建新的实例,但是应用中的其他单例等数据就会被清除。生命周期Android的组件都是有生命周期的,与用户交互的Activity和Fragment都有明确的

2017-11-23 18:23:31 3620

原创 Kotlin的inline内联函数

方法调用流程调用一个方法是一个压栈和出栈的过程,调用方法时将栈针压入方法栈,然后执行方法体,方法结束时将栈针出栈,这个压栈和出栈的过程会耗费资源,这个过程中传递形参也会耗费资源。为什么需要inline有些简单的方法会被频繁调用,什么叫简单的方法呢,举个例子:fun <T> check(lock: Lock, body: () -> T): T { lock.lock()

2017-11-03 17:47:20 14520 24

原创 获取User-Agent

/** * @return 浏览器的userAgent, 某些机型含有中文。 */public static String getUserAgent() { String userAgent = getWebViewUserAgent(); if (StringUtil.isEmpty(userAgent)) userAgent = getSystemUserAgent();

2017-10-10 19:55:53 2921

原创 Android 打印当前进程的所有线程信息

private void printThread() { Map<Thread, StackTraceElement[]> stacks = Thread.getAllStackTraces(); Set<Thread> set = stacks.keySet(); for (Thread key : set) { StackT

2017-06-19 10:09:39 7383

原创 Git 情景处理

本地代码尚不能提交,但是又必须同步服务器代码执行git stash :将本地代码保存;执行git pull origin (rBranch):(lBranch) :同步服务器代码;执行git stash apply [(stashName) ] :将stash中的代码合并到工作区,解决好冲突;需要将远程分支checkout到本地并且在本地建立对应分支git checkout (–track)

2017-06-15 10:49:49 473

原创 Android项目初次构建慢,building gradle project info很久

初次打开Android项目,Loading时间长,一直卡在Building gradle project info初次打开Android项目,需要根据gradle-wrapper.properties中的配置从gradle服务器下载对应的gradle版本并进行配置,这个过程非常耗时,解决方法如下,以gradle-3.4.1为例:方法一快速但有缺陷先打开project/gradle/wrapper/

2017-04-24 20:03:44 5003

原创 Android WebView 跳转第三方App

Android的WebView自身是支持网页挑起第三方App的,但是如果为WebView设置了自定义的WebViewClient,这个功能就失效了,解决方案如下。WebViewClient中有一个方法:shouldOverrideUrlLoading,这个方法的作用是让业务层可以根据url的值决定用什么方式来处理这个url。 /** * Give the host application

2017-03-08 15:22:07 14244

原创 无限自动滑动的ViewPager

整合了多个ViewPager相关的进阶功能,使用方便简单,有示例。功能无限轮播自动滑动自动滑动时间修改自动滑动页面停留时间修改控件复用控件刷新自带指示器不多说,直接上GitHub项目地址无限自动滑动的ViewPager,跑起来看看效果吧。

2017-02-17 14:56:26 674

原创 Git命令,分场景

本地代码尚不能提交,但是又必须同步服务器代码执行git stash :将本地代码保存;执行git pull origin ‘rBranch’:’lBranch’ :同步服务器代码;执行git stash apply [‘stashName’] :将stash中的代码合并到工作区,解决好冲突;需要将远程分支checkout到本地并且在本地建立对应分支git checkout ‘–track’

2016-11-02 17:17:37 565

原创 最全Git命令,掌握命令行操作。

git 中的路径都要用网络路径,正斜杠”/”.暂存区:保存add命令添加的修改git init 初始化git add 将文件添加到仓库(git add . 添加所有文件)git status 查看文件状态(基于版本库)git commit -m “msg” 提交更改(Insert 进入修改模式,Esc进入命令模式 :wq保存并退出 :q!不保存退出)git log

2016-11-02 17:14:41 4537

原创 Android Studio、Git 解决合并冲突

合并分支,解决冲突执行git merge ,如果有冲突,就会出现如下格式:<<<<<<< HEAD这个位置的内容就是当前所在分支的内容=======这个位置的内容就是合并进来的分支的内容>>>>>>> branchName用下面的设置来改进冲突标记使其也显示(分支)共同祖先(感谢罗宾·斯托克和休·吉登斯): git config --global merge.conflictstyle d

2016-07-07 16:20:30 25275 5

原创 Lambda Expressions

Lambda 匿名内部类已经是一种简洁的表示方法了,但是还有一个问题,例如一个接口,它只含有一个方法,那么匿名内部类就不那么易于使用了,因为会出现很多冗余的代码,这个时候开发者就会想要将函数当成一个参数传递给一个方法,例如为控件设置点击事件。所以就出现了Lambda表达式,Java8引入了这个新特性,使用Android Studio编程时,会发现为控件设置点击事件的代码会“变样”,如下第二种表示

2016-07-06 15:49:36 514

原创 Optional

Optional 作为一名Java开发者,在开发过程中,判断是否为空是让我纠结的几个点之一,听说Java 8提供了一个Optional类用于解决这个问题,我已经迫不及待要去了解他了。作用 经过研究使用之后,得出一个结论:Optional类其实是用一种具象的方式来避免开发者忘记判空,具体来说就是,Optional是一种傻瓜式的方式,因为Null自身的可读性是很差的,所以利用Optional包裹操

2016-07-06 15:48:59 1606

原创 Volley源码解析

一、简介Volley是谷歌官方提供的Android应用程序网络请求框架。 1、入口 RequestQueue类中的add方法。/** * Adds a Request to the dispatch queue. * @param request The request to service * @return The passed-in

2016-02-01 10:17:51 550

原创 Android TextView 文字空白解决方案

*Android的TextView控件会在文字上下加上默认的padding值,该值随着文字大小成正比变化,只要为TextView设置android:includeFontPadding=”false”;就可以减少大部分上下空白,而且如果文字sp值小,也就看不出空白了。ps.在Eclipse编辑器上可能看不出效果,在真机上就有效果了,一下是xml演示代码:<?xml version="1.0" enc

2016-01-07 21:02:23 5291

原创 Android setAdapter addHeaderView 报错解决方案

报错内容:Cannot add header view to list – setAdapter has already been called1、在sdk <=16的版本中,ListView的addHeaderView()方法是这样的: public void addHeaderView(View v, Object data, boolean isSelectable) { if

2015-12-08 14:31:28 1698

原创 Android Emoji表情方案

emoji 一,比较简单的emoji方案: 1,选择表情:从EmojiBean(resId,unicode码),选择表情后,将unicode码拼在String上显示在输入框,输入框中会根据所有字符的unicode找到对应的resId,int unicode = Character.codePointAt(text, i); Map < int unicode,int resId>.get(uni

2015-11-30 17:05:24 3762 3

原创 setTranslationY()

Sets the vertical location of this view relative to its top position. This effectively positions the object post-layout; 设置这个控件相对于其顶部位置的垂直位置。这有效地定位在对象的布局后 一、对控件使用setTranslationY(i),意味着在竖直方向上将该控件从它本来的

2015-11-25 15:52:48 14620

转载 Android设置ImageView对话框背景形状

效果图: 只需要改变以下代码中的对应图片即可,图片用点九图。private void initViews(Context context, AttributeSet attrs) { /** share the loading, forground drawable with each other */ if (null == mLoading) {

2015-11-04 19:55:20 2702 2

原创 Android仿微信聊天图片缩略图裁剪

一、首先要明确,”ImageView控件的大小“ 和 “用src属性设置的图片的大小”并不是一个概念,可以通过设置scaleType属性实现想要的效果。借用别的大神做的一张图简单介绍一下scaleType属性: 常量 public static final ImageView.ScaleType CENTER 在视图中使图像居中,不执行缩放。 在 XML 中可以使用的语法: andr

2015-11-04 19:32:44 7198 11

转载 Android Studio高效率小技巧

1 、写代码时用 Alt-Insert ( Code|Generate… )可以创建类里面任何字段的 getter 与 setter 方法。 2 、右键点击断点标记(在文本的左边栏里)激活速查菜单,你可以快速设置 enable/disable 断点或者条件它的属性。3 、 CodeCompletion (代码完成)属性里的一个特殊的变量是,激活 Ctrl-Alt-Space 可以完成在或不在当前文件

2015-11-04 13:53:25 1114

原创 Android Stuido超全快捷键

Alt+回车 导入包,自动修正 Ctrl+N 查找类 Ctrl+Shift+N 查找文件 Ctrl+Alt+L 格式化代码,在project视图下对项目文件夹使用该快捷键可以将所有代码格式化 Ctrl+Alt+O 优化导入的类和包 Alt+Insert 生成代码(如get,set方法,构造函数等) Ctrl+E或者Alt+Shift+C 最近更改的代码 Ctrl+R 替换文本

2015-11-04 13:51:25 903

原创 Android录音播放工具类,仿微信语音聊天。

代码是从聊天类项目中抽出来的,播放类中含有本地播放和网络播放,做法仿微信,先将网络路径中的.amr文件下载下来,然后存到本地播放。 一、录音类import java.io.File;import java.io.IOException;import android.media.MediaRecorder;public class ChatRecorder { private String

2015-11-02 20:08:37 4034

原创 Java,Android类加载顺序真正详解

package com.raymond.test03;public class Parent1 { { System.out.println("parent block ........" + staticVar); } public String parent = getUnStatic(); private static String staticVar = getSta

2015-05-22 11:19:31 2099

原创 Android 控件逐渐出现,逐渐消失的动画

第一步:首先在xml布局文件中设置该控件为android:visibility="gone"。第二步:在代码中配置两个alphaAnimation  appearAnimation = new AlphaAnimation(0, 1); appearAnimation.setDuration(500); disapp

2015-05-21 09:55:55 19158 6

原创 ListView滑动到底部自动加载,仿腾讯新闻.

为ListView设置一个footerView,布局为一个ProgressBar和TextView.监听ListView的滑动事件,当滑动状态为OnScrollListener.SCROLL_STATE_IDLE(刚滑动完,停止滑动) ,并且当前没有加载(isLoading为false)时, 显示footerView中的布局,然后异步加载数据requestNews(),拿到网络数据后,隐藏fo

2015-05-06 19:52:29 1155

代码整洁之道

软件质量,不但依赖于架构及项目管理,而且与代码质量紧密相关。这一点,无论是敏捷开发流派还是传统开发流派,都不得不承认。 本书提出一种观念:代码质量与其整洁度成正比。干净的代码,既在质量上较为可靠,也为后期维护、升级奠定了良好基础。作为编程领域的佼佼者,本书作者给出了一系列行之有效的整洁代码操作实践。这些实践在本书中体现为一条条规则(或称“启示”),并辅以来自现实项目的正、反两面的范例。只要遵循这些规则,就能编写出干净的代码,从而有效提升代码质量。 本书阅读对象为一切有志于改善代码质量的程序员及技术经理。书中介绍的规则均来自作者多年的实践经验,涵盖从命名到重构的多个编程方面,虽为一“家”之言,然诚有可资借鉴的价值。

2018-01-31

极客与团队

《极客与团队》是一本写给程序员看的,教你怎么交朋友,怎么影响团队中的其他人。书中充满了操作性极强的建议和意见,让你在技术团队中过得更开心,变得更有效率,更加如鱼得水。《极客与团队》旨在帮助程序员改进理解他人,与人沟通,以及与人合作的能力,进而在编写软件的过程中变得更有效率。 《极客与团队》适合那些想要更上一层楼并编写出色软件的程序员阅读,也适合软件项目和团队的管理者自己或组织团队成员阅读和参考。

2018-01-31

android反编译软件

可以将android的apk反编译成源代码,过程非常简单。

2015-09-02

空空如也

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

TA关注的人

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