自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

呆呆

android小白菜

  • 博客(46)
  • 资源 (3)
  • 收藏
  • 关注

原创 Android Studio 运行 Flutter 项目,找不到 Logcat 按钮的解决方法

在我们运行Fullter项目时,发现在AS状态栏View-Tool Windows 下无法找到Logcat面板,无法看到控制台输出的日志,正常Android项目是有的,针对这种情况我们可以通过一下步骤解决;首先查看一下 Android sdk 版本,我的是30;在 Project 面板中,点击右键,在弹出的菜单中,选择 " Open Module Settings " 选项,选择 Facets 选项;点击 + 按钮,选择 Android ,在弹出的对话框 Choose Module 中选择你的f

2022-05-31 10:10:20 1226 2

原创 关于Android11的适配 包的可见性问题

在Android 11中,Google为了用户的安全性和隐私性,引入了包的可见性概念,如果没有进行申请。除了默认的一些应用外,我们不能直接获取到软件包是否已经安装了,换句话说我们安装了一个应用,但是我们调用 getInstalledApplications() 或 getInstalledPackages()的可能没有返回此包名。所以我们需要在创建应用程序时,需要我们考虑我们的应用打算与设备上那些已安装应用交互,然后在manifest中,通过使用节点来声明我们会与之交互的包名。而Android如何让包可

2021-08-11 11:38:15 654

原创 Activity启动过程startActivity源码分析

本文基于Android28,以Activity#startActivity(Intent intent)开始为入口@Override public void startActivity(Intent intent) { this.startActivity(intent, null); }@Override

2021-03-15 18:29:52 523

原创 studio提示异常:Error:Execution failed for task ‘:app:compileDebugJavaWithJavac‘.

异常:Error:Execution failed for task ‘:app:compileDebugJavaWithJavac’. > Compilation failed; see the compiler error output for details.碰到这个异常会让人挺无语的,因为Android Studio根本不会提示你详细的错误信息。遇到这个异常的时候可以在命令行中进入项目的根目录,或者可以在Android studio的Terminal中直接操作也可以,然后敲入一个命令:g

2020-12-02 16:23:08 220

原创 ARouter 1.4.0版本后,配置添了还是报错ARouter::Compiler >>> No module name, for more information, look at gradle

最近在自己的项目中用到ARouter,编译时报 :ARouter::Compiler >>> No module name, for more information, look at gradle log错误,于是很自然的百度,看了几十条博客,千篇一律的写着在 build.gradle 中添加配置然而没什么用,加了还一样报错,后来跑到github上看 ARouter的官...

2020-03-24 21:42:51 1027 3

原创 Android音视频开发-MediaPlayer的各种状态详解

最近才开始看的Android音视频开发,觉得里面对MediaPlayer的各种状态讲解的比较详细,做了一下笔记:Android的MediaPlayer专门用于控制视频/音频的文件以及流的播放,有状态机进行管理,相关的状态周期可由10个状态组成,如下图:图中的椭圆代表 MediaPlayer 驻留的状态,弧代表播放控制且聚动 MediaPlayer 状态进行过渡.有两种类型的弧,单箭头弧表示的...

2020-03-03 22:20:53 1095

原创 如何在Android中使用lame库

LAME是目前最好的MP3编码引擎。LAME编码出来的MP3音色纯厚、空间宽广、低音清晰、细节表现良好,它独创的心理音响模型技术保证了CD音频还原的真实性,配合VBR和ABR参数,音质几乎可以媲美CD音频,但文件体积却非常小。使用的前提:1.先去官网中先下载源码:https://sourceforge.net/projects/lame/(当前最新版本是3.100)2.新建Android项...

2019-10-14 15:17:14 1501

原创 关于如何使用Mumu模拟器连接电脑adb

网易的Mumu模拟器算是比较好用的,安装之后想要连接Android studio必须要配置一下:第一步:在Mumu的安装目录下找到adb_server.exe,双击运行,具体目录如下:第二步:我这里没有在系统环境上配置adb,所以先进入自己当前电脑下XX\Android\sdk\platform-tools的目录,XX是自己放Android目录的路径;第三步:shift+鼠标右键选择在此处...

2019-09-11 17:41:37 20922 2

原创 sudo apt-get常用命令集合

搜索包apt-cache search package获取包的相关信息,如说明、大小、版本等apt-cache show package 安装包sudo apt-get install package 重新安装包sudo apt-get install package - - reinstall 强制安装sudo apt-get -f install 参数为–fix-b...

2019-08-26 16:12:35 2215

转载 FFmpeg功能命令汇总

前言如此强大的FFmpeg,能够实现视频采集、视频格式转化、视频截图、视频添加水印、视频切片、视频录制、视频推流、更改音视频参数功能等。通过终端命令如何实现这些功能,Richy在本文做一记录,以备之后查阅。注意:下面一一列举的命令,未归类整理,命令参数供参考。如果参数有误,大家可对照文章-FFmpeg参数命令,进行修改。第一组1.分离视频音频流ffmpeg -i input_file ...

2019-08-20 12:15:08 569

原创 Linux中shell基本语句_2

软件安装:命令行安装:更新服务器的下载配置:sudo apt-get update安装的命令指令:sudo apt install tree (tree是软件名)软件的卸载:sudo apt-get remove tree(tree是软件名)文件解压缩压缩成gzip或bzip2:压缩文件:tar -zcvf tesst.tar.zip hello.c file(test.tar....

2019-07-17 16:56:09 138

原创 Linux中shell基本语句_1

常用快捷键:table 补齐Ctrl + a : 光标移动到最前Ctrl + e : 光标移动到最后Ctrl + u : 清空上,下键 : 切换命令文件操作:cd xxx : 进入到某个目录cd .. : 回退到上一级目录ls : 当前文件夹下面的所有文件./date : 执行当前目录下的可执行文件Linux系统中所见即文件(包括驱动这类都是)mkdir xxx :创建文...

2019-07-15 10:37:03 275

原创 Android studio 输入了错误的git密码

有时候输错了git密码,as提交报错,百度了老半天可能都找不到解决的方法的确是一件挺麻烦的事情;其实解决的方法并不难,只要清空了Android studio的密码记录或者设置不记录密码就可以了...

2019-06-21 10:22:48 1085

原创 C++ 重载运算符和重载函数

C++ 允许在同一作用域中的某个函数和运算符指定多个定义,分别称为函数重载和运算符重载。重载声明是指一个与之前已经在该作用域内声明过的函数或方法具有相同名称的声明,但是它们的参数列表和定义(实现)不相同。当您调用一个重载函数或重载运算符时,编译器通过把您所使用的参数类型与定义中的参数类型进行比较,决定选用最合适的定义。选择最合适的重载函数或重载运算符的过程,称为重载决策。可重载运算符/不可重...

2019-06-18 11:13:24 197

原创 Android知识-Gradle的相关知识

Gradle是一个基于Apache Ant和Apache Maven概念的项目自动化构建开源工具。它使用一种基于Groovy的特定领域语言(DSL)来声明项目设置,抛弃了基于XML的各种繁琐配置。基于JVM的构建工具,是一款通用灵活的构建工具,支持maven, Ivy仓库,支持传递性依赖管理,而不需要远程仓库或者是pom.xml和ivy.xml配置文件,基于Groovy,build脚本使用Groo...

2019-06-17 09:56:43 178

原创 cmd的常用命令和运行java命令

基本的操作指令进入某个盘//进入d盘D://进入F盘F:跳上一层目录cd.. 进入文件路径位置cd /d 跳某文件夹(若再要打开文件则输入文件名全称(有后缀),回车即可打开文件。)查看目录文件dir(查看当前目录下的文件,类似于linux下的ls)创建目录和删除目录//创建目录md 目录名(文件夹)//删除目录rd 目录名(文件夹)查看本机ipIp...

2019-06-06 10:26:08 1251

原创 onSaveInstanceState()和onRestoreInstanceState()的情景使用

一般情况下的使用场景Activity的 onSaveInstanceState() 和 onRestoreInstanceState()并不是生命周期方法,它们不同于 onCreate()、onPause()等生命周期方法,它们并不一定会被触发。当应用遇到意外情况(如:内存不足、用户直接按Home键)由系统销毁 一个Activity时,onSaveInstanceState() 会被调用。...

2019-06-05 17:58:51 1028

转载 基于已有项目的NDK环境配置

最近有朋友跟我留言,关于以前的项目,没有勾选Include C++ Support的项目,怎样配置,才能支持NDK开发 ,特写一篇文章予以说明 。这个问题被我搁置了几天,一来是因为最近在赶项目没时间,二来我也没这样做过,所以得自己做一下试验 。对于这类问题 , 其实可以做一下简要的分析:勾选了Include C++ Support为我们做了什么 ?① 为我们配置好的NDK环境② 创建了C...

2019-05-29 13:55:53 261

原创 Android-TextView添加字体库

有时候因为一些项目上的需要,我们要导入自己的字体,这里总结一些自己导入时候的操作(使用开发工具是Android studio):向Android studio里面加入.ttf字体库,在项目的APP中创建assets文件夹,往里面放入ttf字体库,步骤如下:创建好了assets的文件之后将我们需要使用到的字体库导入接下来就可以正常使用了;先在activity_main.xml中添加一个...

2019-04-23 13:48:58 1090

原创 Android画虚线攻略

一般我们在Android画虚线有两种方式1.布局里面画虚线:在drawable里面创建一个dotted_line_view.xml文件,里面内容如下:<?xml version="1.0" encoding="utf-8"?><shape xmlns:android="http://schemas.android.com/apk/res/android" andr...

2019-03-13 11:47:36 327

原创 Android知识-Gradle配置的相关知识

Gradle是一个基于Apache Ant和Apache Maven概念的项目自动化构建开源工具。它使用一种基于Groovy的特定领域语言(DSL)来声明项目设置,抛弃了基于XML的各种繁琐配置。基于JVM的构建工具,是一款通用灵活的构建工具,支持maven, Ivy仓库,支持传递性依赖管理,而不需要远程仓库或者是pom.xml和ivy.xml配置文件,基于Groovy,build脚本使用Groo...

2019-03-10 13:24:20 198

原创 Android基础-studio查询签名文件jdk里面的信息

这种方式的前提是在有jdk环境的条件下的,当我们要查询签名文件里面相关的信息时候可以按住shift键+鼠标右键,打开相关的命令窗口,在窗口里面输入输入keytool -v -list -keystore key.jks(也可以是keytool -v -list -keystore debug.keystore)命令即可查看调试环境下的MD5与SHA1这样就可以查看相关的签名文件信息,如下图所示...

2019-03-08 14:20:23 163

原创 Android开发:Paint画笔的方法归类

Paint即画笔,在绘图过程中起到了极其重要的作用,画笔主要保存了颜色,样式等绘制信息,指定了如何绘制文本和图形,画笔对象有很多设置方法,大体上可以分为两类,一类与文本绘制相关,一类与图形绘制相关。文本绘制模拟实现粗体文字,设置在小字体上效果会非常差setFakeBoldText(boolean fakeBoldText);设置该项为true,将有助于文本在LCD屏幕上的显示效果se...

2019-03-06 18:17:24 284

原创 自定义view-制作一个加载中的圆形

最近因为项目的需求做的一个加载中圆,刚好记录一下/** * 自定义加载中的圆,主要代码 */public class LoadingSearchView extends View { private Paint mCirclePaint; private Paint mInnerPaint; private float mCircleRadius; pr...

2019-03-01 15:05:11 195

原创 Android基础夯实--我们所了解的Handler

Handler机制主要用于异步消息的处理:当发出一个消息之后,首先进入一个消息队列,发送消息的函数即刻返回,而另外一个部分在消息队列中逐一将消息取出,然后对消息进行处理,也就是发送消息和接收消息不是同步的处理,这种机制适合用来处理相对耗时比较长的操作。所以在Android中通常用来更新UI,子线程执行任务,任务执行完毕后发送消息:Handler.sendMessage(),然后在UI线程Hand...

2019-02-22 18:20:58 207

原创 Android开发-获取APP版本号、版本名称和APP名称的工具类

import android.content.Context;import android.content.pm.ApplicationInfo;import android.content.pm.PackageInfo;import android.content.pm.PackageManager;/** * Android获取本地版本号、版本名称和APP名称 * @author...

2019-02-20 15:12:38 729

原创 Java知识-反射的学习

JAVA反射机制是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法;对于任意一个对象,都能够调用它的任意一个方法;这种动态获取的信息以及动态调用对象的方法的功能称为java语言的反射机制。Java反射的核心是JVM在运行时才动态加载类或调用方法/访问属性,它在编译期不需要知道运行的对象是谁,Java反射实际操作对象是.class文件(字节码文件)反射机制的优点与缺点为什么要用反...

2019-02-15 18:12:15 113 1

原创 Android知识-面向对象的六大基本原则与常用设计模式

一.单一职责原则(SRP)就一个类而言,应该仅有一个引起它变化的原因。一个类中应该是一组相关性很高的函数、数据的封装 通俗的讲就是,一个类或一个方法中只做一件事,实现一个功能。有时单一职责的界定可能并不清晰,我的做法通常是将类和方法的注释写详细,这样一目了然地就知道是不是干了过多的事,并且别人看你的代码也能快速了解功能。 比如你写了一个ImageLoder类,主体功能是去调用加载网络图片,实...

2019-01-30 16:58:47 232

原创 自定义view-贝塞尔曲线的简单使用

理解贝塞尔曲线的原理贝塞尔曲线是用一系列点来控制曲线状态的,我将这些点简单分为两类:数据点、控制点。通过调整控制点,贝塞尔曲线形状会发生变化。数据点:确定曲线的起始和结束位置控制点:确定曲线的弯曲程度一阶曲线原理一阶曲线是没有控制点的,仅有两个数据点(A 和 B),最终效果一个线段。...

2018-12-20 14:24:32 247

原创 开发配置-Android Studio设置类注释和方法注释模板

二、如何在Android studio中设置属于自己风格的注释模板呢?(以图片加步骤的形式讲解)1、新建类的注释:步骤都在图片中,以上便是新建一个类的时候会自动加上类注释。如:/** *Time:2018/12/17 *Author:自己的名字(用${USER}这个变量的话就是计算机的用户名) */public class TextActivity{}2、类手动快捷键注释(...

2018-12-18 10:27:30 4909

原创 Android知识-setContentView做的一些事

从MainActivity的setContentView进入根据源码追踪找到AppCompatDelegate的实现类AppCompatDelegateImplV9,从AppCompatDelegateImplV9#setContentView中可以看出其源码@Overridepublic void setContentView(int resId) { ensureSubDecor(...

2018-11-20 11:49:07 487

原创 自定义View---invalidate() 方法

记录一下前段时间学习的当调用invalidate() 的时候,当前View的onDraw()方法会被调用的原因;通过追踪源码可以发现(我这边看的源码版本是25的):当我们调用了View的invalidate()时候,invalidate()往下走调用了 invalidateInternal(int l, int t, int r, int b, boolean invalidateCache, ...

2018-11-02 17:57:40 1676

原创 Android点击EditText之外的地方隐藏键盘

有些时候我们添加一个点击EditText以外的地方隐藏键盘的功能,通过查找资料,亲测可以采用以下的方法,在activity中重写dispatchTouchEvent(MotionEvent ev)的方法:@Overridepublic boolean dispatchTouchEvent(MotionEvent ev) { if (ev.getAction() == MotionEv...

2018-10-31 15:01:22 328

原创 自定义控件中draw()方法基线的计算

Canvas.drawText(String text, float x, float y,Paint paint)方法第一个参数 text 是需要绘制的文字第二个参数 x 是文字开始的位置第三个参数 y 是基线的位置第四个参数 paint 传画笔其中第三个参数基线的位置计算方法fontMetricsInt.top是从文字的基线开始到文字顶部的距离,是一个负值fontMetrics...

2018-10-29 15:44:31 215

原创 Android自定义view知识-view的测量模式

int widthMode = MeasureSpec.getMode(widthMeasureSpec);int heightMode = MeasureSpec.getMode(heightMeasureSpec);// 如果 widthMode == MeasureSpec.AT_MOST : 在布局中指定了是 wrap_content// 如果 widthMode == Measur...

2018-10-28 17:29:49 493 1

原创 android 5.0及以上,seekbar thumb 透明效果出现父布局背景颜色的解决方法

在seekbar中添加 android:splitTrack=”false” 即可

2018-09-07 11:38:30 1387

原创 Android studio导入3.0项目时候报错

android studio 导入项目时报错 This Gradle plugin requires a newer IDE able to request IDE model level 3 报错。 解决方法: (1): 升级android studio IDE的版本。 (2):在项目的gradle.properties配置文件中加入以下这句: gradle.properties中:...

2018-06-05 16:07:47 268

原创 Plugin with id 'com.novoda.bintray-release' not found的解决方法

如果提示Plugin with id ‘com.novoda.bintray-release’ not found的错误,可以在根目录build.gradle下添加一行代码解决:dependencies { classpath 'com.android.tools.build:gradle:2.3.3' // 添加下面这行就可以解决了 cla...

2018-05-28 13:47:24 2326

原创 Git 常用命令速查

git branch 查看本地所有分支 git status 查看当前状态 git commit 提交 git branch -a 查看所有的分支 git branch -r 查看远程所有分支 git commit -am “init” 提交并且加注释 git remote add origin [email protected]:ndshow git push origin ...

2018-05-17 14:02:27 91

转载 Android wifi上网跟4G上网的区别

手机上网可以用Wifi,也可以用4G,这两者究竟有什么区别,Wifi模块跟4G无限通信模块用的是同一种上网媒介吗,一个4G手机是否两块网卡呢?手机的MAC地址说的是谁的呢,比如,当你通过系统API获取MAC地址的时候,获取的是哪种MAC地址呢?本文由MAC地址(作为设备唯一标识)问题引出,简单分析下两种上网方式的区别,扫盲,高手勿拍砖:Wifi上网跟4G上网用的是同一块“网卡”吗Wifi上...

2018-05-12 14:16:29 1937

lamejun.zip

关于如何在Android中使用lame的示例代码,也方便有需要的人使用。。。

2019-10-14

《C Primer Plus》第6版_中文版.zip

《C Primer Plus(第6版)(中文版)》共17章。第1、2章学习C语言编程所需的预备知识。第3到15章介绍了C语言的相关知识,包括数据类型、格式化输入输出、运算符、表达式、流程控制语句、函数、数组和指针、字符串操作、内存管理、位操作等等,知识内容都针对C99标准;另外,第10章强化了对指针的讨论,第12章引入了动态内存分配的概念,这些内容更加适合读者的需求。第16章和第17章讨论了C预处理器和C库函数、高级数据表示(数据结构)方面的内容。附录给出了各章后面复习题、编程练习的答案和丰富的C编程参考资料。

2019-06-14

一个简单实用的开发工具

api测试,json编辑,在线图片base64转码,加密转换,随即字符串等

2018-05-07

空空如也

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

TA关注的人

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