自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

木头小颖的博客

静 净 敬 竞

  • 博客(69)
  • 收藏
  • 关注

原创 Android设置悬浮窗按钮,图片有多余的白色背景

悬浮窗

2022-12-21 13:54:33 644 1

原创 利用android-serialport-api进行串口读写操作

谷歌开源的项目android-serialport-api让我们更方便的对串口进行读写操作,它的下载地址是https://github.com/cepr/android-serialport-api下载好开源库后,我们打开AndroidStudio,将库导入到项目里首先我们要将android_serialport_api包下面的类包括文件夹本身都原封不动的复制到项目的main/java路径下,跟我们项目本身自己创建的包名同级,切记不要更改任何名字。然后我们找到开源库下面的libs文件夹,

2021-03-25 15:42:27 2613

原创 AndroidStudio 配置NDK

获取NDK方式1.网站上下载NDK安装包地址:https://developer.android.google.cn/ndk/downloads/2.利用AndroidStudio下载按步骤选择NDK包,然后进行下载配置NDK的环境变量桌面 - 我的电脑 右键 - 属性,然后按照下面步骤,添加系统变量这里新创建的系统变量是变量名:NDK-ROOT变量值:即NDK下载安装后的路径点击确定后,在系统变量中找到Path,选择编辑选择新建,然后添加内容 .

2021-03-25 14:56:31 3192

原创 Kotlin中的Lambda

最近在网站上看了看Lambda表达式在Kotlin中的使用,借鉴了大牛一些讲解的内容,这里简单记录了下重点内容,先看下目录1.Lambda介绍Lambda表达式属于函数式编程语言,区别于Java面向对象编程语言。它本质是`匿名函数,因为底层就是匿名函数实现的。2.Lambda的使用2.1Lambda表达式的特点Lambda表达式总是被大括号包裹着,箭头前面是参数(可有可无),参数类型可以省略,箭头后面是函数体。2.2Lambda的语法无参:var noParamM.

2020-09-16 17:38:23 1601

原创 Android样式 - 主题叠加(theme overlay)

参看文章:https://medium.com/androiddevelopers/android-styling-themes-overlay-1ffd57745207Android如何使用主题,如何将主题应用到你的应用程序以及如何构建主题?范围Theme作为一个Context的属性被访问,它可以从任何拥有Context的Object中获得,例如Activity,View或 ViewGroup。这些对象存在于一棵树中,Activity包含ViewGroup,ViewGroup包含View等.

2020-09-12 18:13:24 2039

原创 MaterialDesign相关内容

Material Design指南地址https://material.io/designMaterial Design Components (MDC) - MD组件1.用到的相关网址建议用MDChttps://medium.com/androiddevelopers/we-recommend-material-design-components-81e6d165c2dd MDC库https://github.com/material-components/material-c...

2020-09-11 21:12:42 186

原创 Comparator 和 Comparable 的区别

Comparator 和 Comparable都是集合框架的一部分,都有对象之间进行比较的作用,但是他们也有不同之处,如下代码首先创建一个Person类public class Person{ private String name; //姓名 private int age; //年龄 private int weight; //体重 ...

2019-09-11 17:57:03 152

原创 利用ViewFlipper实现跑马灯效果,OutAnimation不起作用的根源

ViewFlipper可以达到视图的切换功能,因此利用它也能实现跑马灯的效果,但是本人用的时候遇到一个问题就是,进场动画执行结束后不会执行出场动画,再翻看ViewFlipper源码之后有了头绪ViewFlipper重点的源码如下 //ViewFlipper内部的方法,根据mVisible 和 mRunning的状态来决定开始或者停止切换 private void updat...

2019-08-24 16:18:34 697

原创 刷机之后用tcpdump抓包出现的问题

最近由于工作需要将三星T700平板从5.0升级到了6.0,打算用tcpdump抓包的时候,每次输入adb命令都会出现adb server is out of date. killing...* daemon started successfully *解决方案:使用 where adb 命令C:\Windows\adb.exeD:\SoftWare\ProgramS...

2019-08-16 16:11:25 393

原创 2018 Android 框架汇总(转)

///////////////////////////网络请求框架///////////////////////////1.Retrofit一句话介绍:Retrofit是一款类型安全的网络框架,基于HTTP协议,服务于Android和java语言上榜理由:Retrofit以21.8k的stars量雄踞github中android子标题榜首,第一当之无愧。官网地址http://square.g...

2019-04-08 17:33:34 2262

原创 RecycleBin缓存机制

用处:AbsListView的用来缓存重用的View,而缓存是通过RecycleBin来实现的。RecycleBin有两个等级的存储:ActiveViews and ScrapViews。ActiveViews是开始出现在屏幕上的view,这些view会显示当前的内容。在布局将要滑出屏幕的时候,ActiveViews将要变成ScrapViews。ScrapViews存储用过的view,这些旧v...

2019-01-11 00:21:10 688

原创 解决利用Okhttp+Retrofit 发送网络请求得到json是unicode

我们在用Okhttp和Retrofit发送网络请求时,得到的json中汉子是unicode编码,如图此时我们需要在Okhttp初始化的时候设置它的网络编辑器,同时将返回值的编码改成UTF-8.之前设置的OKhttp HttpLoggingInterceptor logging = new HttpLoggingInterceptor(); loggi...

2018-09-07 16:39:07 1761

原创 Fragment的状态保存和恢复

Fragment的状态保存与恢复了解Fragment的状态保存与恢复首先会想到二个问题:1.Fragment什么时候进行状态保存,什么时候进行状态恢复2.保存恢复什么状态,Fragment状态还是View状态。什么时候状态保存?什么时候状态恢复?当Fragment有很大可能被销毁的时候,系统会调用Fragment的 onSaveInstanceState 方法例如:用户按HOM...

2018-09-07 16:38:18 3293

原创 简单介绍Fragment如何依附于Activity

//////////////////////////////////////////////////////////////////////////////////////////////////////////////////// 大概了解下Fragment如何依赖于FragmentActivity我们一般在FragmentActivity做有关Fragment事务处理的时候都会用到Fr...

2018-09-07 16:37:49 1153

原创 Fragment的状态保存startActivityForResult是哪个类的方法,在什么情况下使用?

Fragment调用startActivityForResult ---> HostCallbacks . onStartActivityFromFragment ---> FragmentActivity . startActivityFromFragment FragmentActivity的startActivityFromFragment方法 public v...

2018-09-07 16:37:03 2300

原创 简析Scroller

起初认识Srcoller还是在ViewPager的源码中,当看到ViewPager源码了解它是如何滑动的时候,发现了Scroller的作用。Scroller是一个辅助类,根据x、y坐标,还有滑动的时间,得到滑动到某个时间的坐标,这样可以使滑动的过程显的更加平滑,而不会出现一段段位移的效果。如何使用,源码中也列出了几句话举例 下面是开始一个滑动的代码private Scroller mS...

2018-09-07 16:36:03 266

原创 浅析Activity状态保存与恢复

接触Activity的时候有一个知识总是感觉用的地方不是特别多,但它也是Activity生命周期的一部分,那就是Activity的状态保存与恢复了,在生命周期中回调的方法是onSaveInstanceState和onRestoreInstanceState。那么什么时候我们需要用到它呢?从字面意义上可判断场景如下:1.关闭Activity(例如按下back键)2.转向后台运行时(例如有电话打来、按...

2018-06-20 18:32:24 758

原创 Activity四种启动模式对比

1.Standard(标准模式-默认)例:我们从StandardActivity跳转到A_Activity,再次跳转到B_Activity,再次跳转到StandardActivity,再次跳转到A_Activity打印的logI/BaseActivity: *****************start*********************I/BaseActivity: onCreateI/Ba...

2018-06-19 18:33:11 2037 1

原创 两个Activity之间跳转时必然会调用的方法

Activity1启动的时候 Activity1(onCreate)--->Activity1(onStart)--->Activity1(onResume)Activity1跳转到Activity2的时候(2完全覆盖了1) Activity1 (onPause)---> Activity1(onStop) Activity2(onCreate)--->Activity2(...

2018-06-04 16:57:04 819

原创 Activity与Fragment之间生命周期的简单比较

Fragment生命周期onAttachonCreateonCreateViewonActivityCreate                ______以上相当于Activity的onCreate方法onStart                             ______相当于Activity的onStart方法onResume                        ___...

2018-06-04 16:17:36 3134

原创 浅析Activity横竖屏切换时的生命周期

1.AndroidManifest没有设置configChanges属性竖屏启动:onCreate -->onStart-->onResume切换横屏:onPause -->onSaveInstanceState -->onStop -->onDestroy -->onCreate-->onStart -->onRestoreInstanceStat...

2018-06-01 15:48:34 12149

原创 结合getTextBounds方法简析绘制文字时需要注意的地方

我们在自定义View的时候时常会重写onDraw方法,那么在onDraw方法中,绘制文字有时候就用到了paint 的getTextBounds方法来确定文字的位置。而这个方法需要注意两点:1.绘制文字的时候即drawText时源码: /** * Draw the text, with origin at (x,y), using the specified paint. The

2018-01-19 13:25:31 2251

原创 Git命令经验总结

1.git clone + ssh地址 报权限不够在github中设置远程仓库URL为SSH时 即用git@github.com ....如果用git clone 下载远程仓库 报没有权限的时候,如图:那么我们该想想是否更改了HOST,例如这里我之前已经更改了~/.ssh/config 中的HOST如图:

2017-12-15 13:15:43 207

原创 利用Soap2调用webService接口用AS打包后出错小结

项目中用到了xStream将对象封装成xml进行通讯的功能,这里用到了测试一切都正常,将项目用AndroidStudio打包后发现app中总是包连不上网

2017-12-05 17:27:48 853

原创 项目上线之前的注意事项

1.注意查看新版本添加的所有url是否区分正式环境和测试环境,包括接入第三方的SDK和自己项目用到的接口2.上线新版本要修改项目的VersionName和VersionCode3.查看新写的接口是否仍旧用着测试数据

2017-11-21 15:54:04 1861

原创 AndroidStudio通用混淆配置文件

#default#指定压缩级别-optimizationpasses 5-dontusemixedcaseclassnames#不跳过非公共的库的类成员-dontskipnonpubliclibraryclassmembers#混淆时采用的算法-optimizations !code/simplification/arithmetic,!field/*,!cla

2017-09-22 11:07:42 898

原创 使用本地gradle和gradlew相关配置

gradle是Android Studio新引入的Android App编译工具,用来代替以前基于Ant的编译系统。gradle一些命令如 ./gradlew -v ./gradlew clean ./gradlew build,这里注意是./gradlew, ./代表当前目录,gradlew代表 gradle wrapper,意思是gradle的一层包装,大家可以理解为在这个项目本地就

2017-09-12 13:16:24 972

原创 较完整的配置AS项目的build.gradle文件

apply plugin: 'com.android.application'apply plugin: 'com.jakewharton.butterknife'//java8 支持apply plugin: 'me.tatarka.retrolambda'apply plugin: 'android-apt'//定义打包时间函数def packageTime() { r

2017-09-05 14:22:31 1669

原创 AndroidStudio 命令行小结

gradlew build clean --info --> jzl.log 或者 gradlew build clean --info : 查看gradle启动信息adb shell dumpsys actvity : 用来查看Launcher启动MainActivity信息adb shell dumpsys activity activities :用来查看当前栈中的Activity...

2017-08-17 15:02:11 633

原创 AndroidStudio 利用Git 将修改内容移动其他Changeist中

1.项目名称右键选择Git --> CommitDirectory2.选择红色框内的按钮,弹出Move to Another Changelist 弹框,即可修改。

2017-08-17 14:31:23 659

原创 通过Uri获取手机通讯录的某个联系人

private String[] getPhoneContacts(Uri uri) { String[] contact = new String[2]; ContentResolver cr = getContentResolver(); Cursor cursor = cr.query(uri, null, null, null, null);

2017-08-17 11:48:25 1599 1

原创 Andriod 出现SIGILL 异常

我们项目中导入了第三方的library时,有的手机会报SIGILL(ILL_ILLOPC)异常,这时候我们需要警觉是否匹配部分手机的cpu架构。例如导入faceId的类库IDCardLib可见他的lib里是支持arm64-v8a架构的,因此在项目的config.gradle文件的abiFilters中加入'arm64-v8a'这样运行时,就不会出现异常了。

2017-08-17 10:41:56 12825

原创 AndroidStudio通过设置Soft Wrap 实现换行

AndroidStudio设置换行有一个很简单的方法,就是在编写代码区域左侧的显示行数地方右键鼠标,选中Soft-Wrap Current File或者Soft-Wrap All Files即可。最终当代码超过编写区域的宽度时会自动换行。设置:设置后:

2017-08-14 16:37:36 6812

原创 利用PermissionsDispatcher解决运行时权限异常

安卓6.0以后申请部分权限需要在应用程序中提醒用户去开通,这些需要运行时申请的权限都是影响到用户信息安全的,6.0之前只要在AndroidManifest注册即可,6.0以后必须先申请,因此增加了安全性,但是给开发人员带来了麻烦。因此从网上找到了一个第三方库PermissionsDispatcher很容易处理运行时的异常。PermissionsDispatchergithub地址:htt...

2017-08-14 11:32:35 2821

原创 点击view两次才触发onclick事件总结

当一个界面中出现两个可以点击的View时,出现两种异常情况:1.连续点击同一个View两次才触发onClick事件。2.点击一个View没有反应,再点击另一个View也没反应,当连续点击同一个View两次才能触发onClick。这是因为在布局xml中设置了View的focusableInTouchMode属性为true,将该属性设置为false点击就正常了。

2017-08-11 17:44:05 6534

原创 简单实现Android倒计时功能

这里列举了一个简单实现倒计时的例子Timer+Handler。首先创建一个Timer对象,并设立一个倒计时开始时间recLen Timer timer = new Timer(); private int recLen = 120;一个Timer是可以开启很多任务的,每个任务都用一个TimerTask表示。因此需要创建一个自定义的TimerTask用来实现自己

2017-08-04 16:15:07 1577

原创 AndroiStudio Error:Execution failed for task ':app:process_360DebugManifest 报错

当我们项目需要加入一个或多个Module作为library时,会报如下异常:Error:Execution failed for task ':app:process_360DebugManifest'.> Manifest merger failed with multiple errors, see logs这说明在合并所有的Manfest文件时冲突了,几率最大的两个原因是1.b

2017-08-03 12:17:37 12999 3

原创 Js 调用 android 本地方法 并传入参数

项目中为了更加灵活,且多变的布局,往往会在Activity中加入h5页面,h5页面离不开android WebView控件,有WebView难免也会与Js进行交互,下面简单介绍与js交互经常出现的问题。首先初始化一个WebView: webView.setVerticalScrollbarOverlay(true); //是否开启本地DOM存储

2017-07-31 14:15:18 2903

原创 制作无白色栏、无白色背景框的加载等待dialog

当我们项目需要一个自定义的dialog来表示加载等待的效果,我们可以如下定义:设置无白色边框无白色背景的style @null true false true @android:color/black @color/transparent true

2017-07-20 09:46:43 301

原创 AndriodStudio 中使用.9图片报错

最近项目中用到了.9图片,于是自己制作了一张.9图片,放到项目的drawable文件夹下,运行,过后会出现错误,如下:> Error: Some file crunching failed, see logs for detailsError:Execution failed for task ':app:merge_360DebugResources'.明显告知是资源文件的问题,

2017-07-13 14:50:10 501

空空如也

空空如也

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

TA关注的人

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