自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

欢迎来到苗文源的博客

爱生活,爱代码

  • 博客(35)
  • 资源 (1)
  • 收藏
  • 关注

原创 这是一份详细的接口测试使用教程(含实例讲解)

我们要想知道接口测试怎么做,首先要明白接口测试是什么?一般像系统内的组件接口数据交互测试、不同系统与系统之间的接口数据交互测试等,我们都可以称之为接口测试!那么接口测试是怎么来测试接口的呢?接口测试就是通过接口的不同情况下的输入和与之对用的输出之间的关系,看看是否满足接口规范所规定的功能性、安全性以及性能方面的要求.简单的说:“接口测试是就是在没有前端页面或者前端还没完成的情况下,代替前端页面或者第三方使用者,来验证后端的接口实现是否符合接口规范。”

2022-11-15 10:12:54 3748 1

原创 Error running app: Default ActivityNot Found 完美的解决方案

最近在调试安装Android app程序时,碰到Error running app: Default ActivityNot Found。对于一个开发人员来说,这是一个很操蛋的问题,好在Android Studio 还是很智能,报错原因也有提示,那么跟我一起解决问题吧!!!如下图 保存原因:解决方案:可以从报错已经知道是运行app出错导致的: 报错原因:未找到默认活...

2019-04-30 13:17:16 39028 5

原创 AndoidStudio运行报:Please select Android SDK!!!

编译项目后,好端端的As准备兴致勃勃去运行,结果打X。这个二球的AS有报错了气人,没办法解决呗。点击运行会 提示错误:Please select Android SDK这个怎么办呢:不怕。第一步:File----->Settings第二步:Android SDK 找到原有的SDK路径点击EDit第三步:确实路径是否正确,正确就点击 Next...

2019-04-23 13:47:35 352

原创 Android8.0以上监听开关机,息亮屏,解锁等系统广播轻松实现

随着Android版本越来越高,对用户得体验效果极好,但是苦逼了我们这些开发人员,但是办法总比困难多!!!闲话不多说,直接进入正题:Android系统启动完成后会发出启动完成广播(android.intent.action.BOOT_COMPLETED),所有注册了接收启动完成广播的接收器(BroadcastReceiver)都会收到此广播。相对应也会收到关机完成广播(andr...

2019-04-19 16:22:49 7924 7

原创 Android7.0以上动态权限申请 使用RxPermissions框架,让申请权限更加轻松。

 这里使用 的是 RxPermissions ,由RxJava2提供支持的Android运行时权限 ,让代码简洁,申请权限更加方便。 该库允许将RxJava与新的Android M权限模型一起使用。  使用时候导入依赖:allprojects { repositories { ... maven { url 'https://jitpack.i...

2019-01-31 10:26:00 2127

原创 Android判断是否某个权限是否授权

本人是一介莽夫,话不多说,直接撸代码。第一, 首先定义数组,将需要判断的权限添加进来 ,下面举例  添加修改删除权限。 //要申请的权限 private String[] mPermissions = {Manifest.permission.READ_CONTACTS, Manifest.pe...

2019-01-31 09:46:42 9062

原创 No resource identifier found for attribute 'appComponentFactory' in package 'android'报错

报错原因:No resource identifier found for attribute 'appComponentFactory' in package 'android'  解决方案:   这个问题是你项目少配置V4包的插件,找到项目的buid.gradle 添加以下依赖 dependencies { implementation 'com.andro...

2019-01-30 14:20:05 8245 4

原创 Android7.0 ,8.0以上自动安装权限申请。

在开发过程中,版本升级是必不可少的一部分,在Android7.0以上你会发现安装时不自动跳转到手机的安装界面,这时候就需要去申请动态权限了。首先判断咱们的手机版本是多少 if (Build.VERSION.SDK_INT >= 24) {//判读版本是否在7.0以上 Uri apkUri = FileProvider.getU...

2019-01-29 17:08:02 1390

原创 针对于Android8.0通知栏实现

   鲁莽的实现Android8.0通知栏1.首先判断手机版本,设置需要的通知栏属性 //通知栏 @TargetApi(Build.VERSION_CODES.O) public void createNotificationChannel(boolean isVibrate, boo...

2018-10-17 17:19:01 288

原创 一个优雅AlertDialogUtil工具类

为了节省代码的复用性,小小的进行封装,易上手,操作简单。package com.main.utils;import android.content.Context;import android.content.DialogInterface;import android.support.annotation.Nullable;import android.support.v7.ap...

2018-10-11 17:47:37 1259

原创 Android一个超级好用的Log工具类。

话不多说,直接上代码              小小提示哟,记得调试开关!package com.main.utils;import android.util.Log;/** * @创建者 CSDN_苗小源 * @描述 调试log日志 支持跳转到对应的日志位置 */public class HbLogUtil { //单例 private static ...

2018-10-10 14:12:45 3730

原创 一步一步教你实现阿里巴巴的Sophix热修复(一)配置Sophix信息

1.0 集成准备gradle远程仓库依赖, 打开项目找到app的build.gradle文件,添加如下配置:添加maven仓库地址: repositories { maven { url "http://maven.aliyun.com/nexus/content/repositories/releases" } }...

2018-09-17 09:28:41 260

原创 > No slave process to process jobs, aborting 报错!!!

报错原因:Error:Execution failed for task ':app:processDebugResources'.> No slave process to process jobs, aborting    解决方案:            这是一个坑,而且是大坑,只需要将你的AndroidStudio关闭,重新打开就可以!!...

2018-04-19 11:48:49 2079 5

原创 Android实现popupwindow弹出后屏幕背景变成半透明效果

/** * 设置添加屏幕的背景透明度 * * @param bgAlpha */ public void backgroundAlpha(float bgAlpha) { WindowManager.LayoutParams lp = getWindow().getAttributes(); lp.alpha = ...

2018-04-18 15:37:36 3771

原创 Android跳转到应用商店的APP详情页面

    项目流程:从App内部点击Button按钮或者相应的条目,跳转到应用商店的某个APP的详情页面。实现:      第一步:导入获取手机App工具类public class MarketUtils { /** * 获取已安装应用商店的包名列表 * * @param context * @return */ public st...

2018-04-16 21:47:25 1823

原创 Error:Execution failed for task ':app:javaPreCompileDebug' 报错!

报错原因:Error:Execution failed for task ':app:javaPreCompileDebug'.> Annotation processors must be explicitly declared now.  The following dependencies on the compile classpath are found to contain an...

2018-04-16 18:43:05 5130

原创 Android属性动画

1.为什么要引入属性动画?它其实是对补间动画的一个加强,可以对控件的属性进行2.动画分为几类?分为三大类:补间动画,逐帧动画,属性动画3.属性动画和补间动画的区别:1).补间动画改变的对象只能是View,只能改变"alpha","rotate","scale","translate"四个属性2).属性动画:可自定义各种动画效果,不再局限于4种基本变换:平移、旋转、缩放 、透明度(也可以对非view...

2018-04-16 17:14:54 123

原创 上传头像及上传到Tomcat 服务器

                              github源码地址:https://github.com/15565201312/UploadPicturesDemo.githttps://github.com/15565201312/UploadPicturesDemo.githttps://github.com/15565201312/UploadPicturesDemo.git...

2018-04-16 08:32:36 606

原创 JSON与XML优缺点对比分析

JSON的定义 一种轻量级的数据交换格式,具有良好的可读和便于快速编写的特性。业内主流技术为其提供了完整的解决方案(有点类似于正则表达式 ,获得了当今大部分语言的支持),从而可以在不同平台间进行数据交换。JSON采用兼容性很高的文本格式,同时也具备类似于C语言体系的行为。XML的定义 扩展标记语言 (Extensible Markup Language, XML) ,用于标记电子文件使其具有结构性...

2018-04-16 08:30:54 668 1

原创 MVP框架

一、MVP 由来按照MVC的分层,Activity应该属于View层,用于展示UI界面,以及接收用户的输入,此外还要承担一些生命周期的工作。 特别是生命周期的功能,所以开发的时候我们经常把一些业务逻辑直接写在Activity里面,这非常直观方便,代价就是Activity会越来越臃肿;超过1000行代码是常有的事,如果有进行代码重构经验的人,看到1000+行的类肯定会有所顾虑。Activity不仅承...

2018-04-16 08:29:41 316

原创 Android操作系统分层

第一层:Linux操作系统和驱动(Linux kernel):由C语言实现。 Android核心系统服务依赖于Linux2.6内核,包括:安全性、内存管理、进程管理、网络协议、驱动模型。Linux内核也作为硬件和软件栈之间的抽象层。除了标准的Linux内核外,Android还增加了内核的驱动程序:Binder(IPC)驱动、显示驱动、输入设备驱动、音频系统驱动、摄像头驱动、WiFi驱动、蓝牙驱动、...

2018-04-16 08:28:12 1583

原创 JAVA 泛型详解

1. 概述泛型在java中有很重要的地位,在面向对象编程及各种设计模式中有非常广泛的应用。                                                                                          什么是泛型?为什么要使用泛型?泛型,即“参数化类型”。一提到参数,最熟悉的就是定义方法时有形参,然后调用此方法时传递实参。那么参数...

2018-04-16 08:27:45 185

原创 Android中的显式Intent 和 隐式Intent 有什么区别?

显式Intent:即直接指定需要打开的Activity类,可以唯一确定一个Activity,意图特别明确,所以是显式的。设置这个类的方式可以是Class对象(如SecondActivity.class),也可以是包名加类名的字符串。应用程序内部Activity跳转常用这个方式。隐式Intent:隐式不明确指定启动哪个Activity,而是设置Action、Data、Category,让系统来筛选出...

2018-04-16 08:26:40 1103

原创 Android通知(Notification)的使用

1.通知的概述Notification,是一种具有全局效果的通知,可以在系统的通知栏中显示。当 APP 向系统发出通知时,它将先以图标的形式显示在通知栏中。用户可以下拉通知栏查看通知的详细信息。通知栏和抽屉式通知栏均是由系统控制,用户可以随时查看。下面两张图均是来自 Google 官方文档。1.2通知的使用场景通知的目的是告知用户 App 事件。在平时的使用中,通知主要有以下几个作用:1.显示接收...

2018-04-15 22:42:12 349

原创 Java线程池原理分析

首先感谢Sam老师的公开课,让鄙人对线程池有一些深刻的体会,接下来咱们聊一下线程池:1.    什么是线程池?                    将他分开理解, 线程我前面有过介绍,接下来就是池。              总归为:池化技术 ---》数据库连接池 缓存架构   缓存池  线程池 内存池,连接池,这种思想演变成缓存架构技术---> JDK设计思想有千丝万缕的联系      ...

2018-04-15 22:23:28 147

原创 Java线程个人的一些理解

                    1.概述:         当我们提到Java线程的时候首先想到的是进程,因为线程是依赖于进程的。     那什么是进程呢?                  说白了进程就是通过任务管理器你可以看到的一些App应用。                                                                        ...

2018-04-15 21:35:17 208

原创 直播协议

现在视频直播流用到的协议主要有3个。RTMPRTP/RTCPHLSrtp协议详解/rtcp协议详解1、简介  目前,在IP网络中实现实时语音、视频通信和应用已经成为网络应用的一个主流技术和发展方向,本文详细介绍IP协议族中用于实时语音、视频数据传输的标准协议RTP( Real-time Transport Protocol)和RTCP(RTP Control Ptotocol)的主要功能。  2、...

2018-04-13 16:34:02 412

原创 Android.database.sqlite.SQLiteException: no such table: SAO_HE (code 1): 报错

 GreenDao数据库框架报错原因:       android.database.sqlite.SQLiteException: no such table: SAO_HE (code 1): , while compiling: SELECT T."_id",T."image",T."title",T."len",T."brief" FROM "SAO_HE" T解决方案:     

2018-04-12 12:03:17 1900

原创 Android Studio3.0 Error:Execution failed for task ':app:javaPreCompileDebug'报错

Error:Execution failed for task ':app:javaPreCompileDebug'. > Annotation processors must be explicitly declared now.  The following dependencies on the compile classpath are found to contain annota...

2018-04-12 08:32:22 2186 1

原创 Glide和Picasso对比的优缺点

(1)       Picasso和Glide的withi后面的参数不同Picasso.with(这里只能传入上下文)     .Glide.with,后面可以传入上下文,activity实例,FragmentActivity实例,Fragement.传入的对象要比前者多.(2)    加载后图片质量不同 Picasso采用的ARGB-8888,Glide采用的是RGB-565 相对而言,Pica...

2018-04-12 07:31:46 396

原创 Android性能优化总结,必须知道的重点!!!

说到Android性能优化主要从以下六点说一下1.布局优化主要就是尽量减少布局文件的层次,Android绘制的工作量少,程序的性能就高了。首先在布局中可以采用LinearLayout也可以采用RelativeLayout的时候尽量使用LinearLayout,因为在绘制的时候它只会绘制一次。也可以采用<include>标签 它可以指定一个布局文件加载到当前的布局文件,大多实现...

2018-04-11 21:28:37 195

原创 本地存储—Sharepreferences

Sharepreferences数据存储,最基本的一种存储方式,主要保存一些轻量级的存储类,主要是保存一些常用的配置1、SharePreference存储方式是基于XML文件存储的Key—value形式,通过key可以找到对应的value2、数据保存路径 文件存放在/data/data//shared_prefs目录下3、sharedpreferences 访问权限    (1)、Context....

2018-04-11 16:13:24 392

原创 ListView加载图片错位

什么导致图片错乱?怎么解决?错乱的原因是异步加载以及Convertview对象复用造成的。首先给ImageView设置一个Tag,这个Tag中设置的是图片的Url,     然后在加载的时候取得这个Url要和加载的那个Position中Url对比,   如果不同就加载,相同的话就复用以前的,不加载。原理:一个屏幕显示了几条,会在下面默认绘制一条默认的,例显示了4条当第一条移出屏幕的时候会将这一条目...

2018-04-11 16:12:52 237

原创 如何保证Service不被第三方杀毒软件杀死

第一种方式我们可以提升Service的优先级来防止被杀除,就是使用前台Service来实现(360就是这么做的)第二种我们可以通过监听广播的方式实现,就是我们定义一个广播接收器,在这个接收器里面监听一些系统广播(比如:Intent.ACTION_TIME_TICK,这个广播每分钟发送一次,),一旦收到这些广播之后,就去查看我们的服务Service有没有被启动,如果没有启动的话,则启动就可以了。第三...

2018-04-11 16:07:04 492

原创 GreenDao和OrmLite的区别?

Ormlite:基于反射和注解。优点:文档全面,使用简单,易操作。缺点:基于反射,执行速度慢。GreenDao将对象映射到sqlite数据库中的。优点:速度快,存储的文件比较小,占用内存小,操作简单。缺点:封装不完整。区别:ormlite基于反射和注解,效率比较低,占用内存大,而GreenDao是对象关系映射,效率比较高,占用内存小,并且ormlite存储的文件要比GreenDao存储的文件占用要...

2018-04-11 15:52:41 875

一个特别棒的log日志调试工具类

测试期间log日志打印,支持跳转对应的输出日志地方,代码打包apk,关闭log日志,不担心日志信息泄露,从此妈妈再也不用担心我的学习

2018-10-11

空空如也

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

TA关注的人

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