- 博客(57)
- 资源 (4)
- 收藏
- 关注
原创 Flutter Package 插件开发
什么是插件在flutter中,一个插件叫做一个package,使用packages的目的就是为了达到模块化,可以创建出可被复用和共享的代码,创建出来的package可以在pubspec.yaml中直接依赖。Package介绍pubspec.yaml文件:用于定义package名称、版本号、作者等其他信息的元数据文件。lib目录:包含共享代码的lib目录,其中至少包含一个<package-name>.dart文件。<package-name>.dart这个文件必须在,因为这是方
2022-05-26 10:54:35 1238
原创 (Flutter报错)Cannot run with sound null safety, because the following dependencies
在Flutter中引入第三方库报错Cannot run with sound null safety, because the following dependencies。这是出现了don’t support null safe的问题,因为在Flutter2中使用了null safety(空安全)技术,如果出现null,就会报错。这种安全机制大大减少了null error。解决办法如下:在终端运行flutter run --no-sound-null-safety“Edit Configuratio
2022-05-23 18:00:41 4861
原创 Flutter的生命周期
Flutter的生命周期分为两部分widget的生命周期App的生命周期widget的生命周期StatelessWidget无状态组件的生命周期只有build,build在每次刷新界面的时候都会被调用,所以最好不要执行太多业务逻辑。StatefulWidgetcreateState:是StatefulWidget中创建State的方法,当StatefulWidget被调用时会立即执行createState,且执行一次(相当于android中的onCreate)initState:该函
2022-05-20 10:38:12 483
原创 java.lang.IllegalStateException Design assumption violated. at androidx.viewpager2.adapter.Fragment
Design assumption violated. at androidx.viewpager2.adapter.Fragment
2022-04-28 11:17:06 3353
原创 Gradle学习(二)Groovy
GroovyGroovy是一门jvm语言,它最终是要编译成class文件然后在jvm上执行,所以Java语言的特性Groovy都支持,我们完全可以混写Java和Groovy。Groovy的优势:Groovy提供了更加灵活简单的语法,大量的语法糖以及闭包特性可以让你用更少的代码来实现和Java同样的功能。Groovy的变量和方法声明def a = 1def b = "hello world...
2020-01-18 11:25:53 393
原创 Gradle学习 (一) 入门
Gradle的使用现在环境变量中配置Gradle环境后,在cmd中使用gradle -v查看是不是环境变量已配置好运行Gradle文件通过在命令行运行 gradle 命令来执行构建,gradle 命令会从当前目录下寻找 build.gradle 文件来执行构建。我们称 build.gradle 文件为构建脚本。我们也可以通过 -b 来指定要加载的文件。task hello { doL...
2020-01-16 17:10:05 376
原创 解决错误 Could not find method leftShift() for arguments
在Gradle中创建一个task后出现 Could not find method leftShift() for arguments错误使用的Gradle5.1 自定义的Task结果使用了快速定义任务 <<task hello << { println 'Hello'}问题出现的原因:操作符 << 在Gradle 4.x中被弃用,并且在Gr...
2020-01-16 11:33:43 9254 2
原创 Flutter在Windows下的环境搭建
官方网址:https://flutter.io/Flutter中文网:https://flutterchina.club/中文开发者论坛:http://flutter-dev.cn/使用镜像(非必需的)由于在国内访问Flutter有时可能会受到限制,Flutter官方为中国开发者搭建了临时镜像,大家可以将如下环境变量加入到用户环境变量中:export PUB_HOSTED_URL=htt...
2019-12-26 10:06:01 408
原创 自定义View的流程总结学习
自定义View是一个老生常谈的问题,对于一个Android开发者来说是必须掌握的知识点,也是Android开发进阶的必经之路。要想安卓理解自定义View的流程,首先我们要了解View的绘制流程。分析之前,我们先来看底下面这张图:View的绘制流程DecorView是一个应用窗口的根容器,它本质上是一个FrameLayout。DecorView有唯一一个子View,它是一个垂直LinearL...
2019-10-02 14:48:45 356
原创 Android事件分发机制,浅谈解析
通过简单的demo来解析事件分发机制,主要通过简单的三层Activity–>ViewGrop–>View来分析事件分发机制。先通过一张简单的事件分发流程图来看看事件分发的基本流程。Activity与View是没有onInterceptTouchEvent这个方法的,也就是说这两者没法使用该方法拦截事件,我们先按照上面流程图来建一个demo,看看事件分发是否与我们流程图所画的一样。如...
2019-07-03 20:02:09 209
原创 AndroidStudio更新时,不小心点了ignore This Update,解决办法
尤其好久没更新自己笔记本的AndroidStudio了,准备更新时不小心点了Ignore this update(忽略这次更新)。以至于更新不到最新的稳定版本,每次检查更新都如下图所示:琢磨了一下解决办法如下:在C盘Users目录下找到你的.AndroidStudioxx目录在里面搜索updates.xml文件用文本编辑器打开它,删除下图红色方框的代码,保存重新打开AndroidSt...
2019-05-16 11:31:13 2620
原创 LruCache与DiskLruCache结合简单实现ImageLoader
这主要是记录一下Android中的图片缓存的基本策略,实现一个粗糙的图片加载框架Android的图片加载框架都是万变不离其宗嘛,Bitmap的压缩裁剪,LruCache和DiskLruCache缓存策略的使用,ThreadPoolExecutor线程池的使用,其它各种贴心优化等等。LruCache这个不多说了可以看我历史悠久的文章LruCach解析和使用 ,或者百度谷歌一下郭神的博客。主要说一...
2019-05-15 23:27:51 263
原创 Android检测当前是否在主线程内
为了避免不是在当前主线程造成的异常,避免很多不必要的异常。如Gilde加载图片时出现的异常:java.lang.IllegalArgumentException: You cannot start a load for a destroyed activity等等。
2016-10-09 11:54:48 4851 1
原创 Android ListView at android.widget.AbsListView$RecycleBin.addScrapView
为啥会出现这个BUG呢! 在我写代码的时候理论上是不会出现,为啥出现了。因为ListView里面本来我是写了三个类型的,结果删了一个位置从1开始的类型,就出现了这个BUG。记录下提个醒。在使用getItemViewType()时,它的起始位置是从0开始的。并且getViewTypeCount()的值必需大于getItemViewType()。记住getItemViewType()的type是从0开始
2016-07-18 13:01:57 1496
原创 Android RecyclerView使用notifyItemRemoved()移除数据时数据错乱
在使用notifyItemRemoved()这个方法时,由于该方法不会使position及其之后位置的itemView重新onBindViewHolder,重新刷新后面的数据会导致下标错乱。有可能产生一些坑爹的bug。解决方法,通知其后数据刷新,并且一定要记得移除源数据源中要移除的数据。 mDeliveryOrderList.remove(i); mDeliveryAdapter.notifyIt
2016-07-08 16:28:07 10042 1
原创 Android 使用ZXing扫描在部分手机上扫描变形解决办法
项目中用ZXing做的二维码扫描,在部分6.0的手机上扫描变形了,网上找了老半天终于是修改成功了,记录下解决办法。修改CameraConfigurationManager.java下的findBestPreviewSizeValue()方法中的一句代码:float newDiff = Math.abs(screenResolution.x * 1.0f / newY - screenResoluti
2016-07-07 18:34:50 2299
原创 Android 异常java.lang.IllegalStateException: Can not perform this action after onSaveInstanceState
java.lang.IllegalStateException: Can not perform this action after onSaveInstanceState.
2016-07-01 11:43:21 3193
原创 Android 判断服务是否开启
/** * 判断服务是否开启 * * @param mContext * @param className 这里是包名+类名 xxx.xxx.xxx.TestService * @return */ public static boolean isServiceRunning(Context mContext,String cla
2016-06-29 11:35:45 2200
原创 Android Fragment中startActivityForResult不执行回调。
Fragment startActivityForResult 不回调, 回调 resultCode永远为0
2016-06-23 17:56:53 5707
原创 Android studio 异常 libpng warning: iCCP: Not recognizing known sRGB profile that has be
异常:libpng warning: iCCP: Not recognizing known sRGB profile that has been edited Error:Execution failed for task ':app:mergeDebugResources'.Crunching Cruncher start.png failed, see logs
2016-06-20 14:49:31 732
原创 Android伪守护进程(通过AIDL实现)
这里主要记录下学习AIDL,通过AIDL来实现一个伪守护进程,也就是杀不死的进程(ps:这里指的是在一定情况下是杀不死,离微信,qq那些用NDK来实现的差很远,只是用于学习)。先看下效果图 看了效果图是不是发现我这个demo里面有两个进程,杀死一个还能重启另外一个呢!下面主要记录下在应用层通过AIDL 和 Service来实现一个伪守护进程。看下面代码:要实现守护我们是不是得启动2根服务来监听,如
2016-05-23 15:30:24 2714
原创 Android 注解的简单使用之省去findViewById()
Android开发中不可避免的是findViewById()这样的繁琐事情,往往我们在写这些findViewById()的的时候有没有种想吐的感觉?这项工作纯属是个没营养的体力活,so Android衍生出了很多开源框架通过注解的方式来绑定控件,省去这项繁琐的体力活。这里也不介绍这些框架,而是忙碌的时间刚好结束可以休息一两天,但是上班对着电脑又不干活貌似有点无聊,于是就打算写个关于注解简单使用的博文
2016-04-18 17:45:52 3036
原创 Android WebView JS交互之响应WebView中的图片点击事件
开发需求是点击webview中的图片进行大图查看显示。 那么webview中如何调用js中的方法获取图片资源和图片的position呢?服务端提供的js方法如下: //调用app内置的图片幻灯片查看图片 $(".newscontent img").click(function(){ if(typeof chanceapp != 'undefined'
2016-04-18 11:51:29 4837
原创 Android Studio 运行项目出现Information:Gradle tasks异常解决办法。
在更新Android Studio2.0后,项目运行出现该异常:Information:Gradle tasks [:clean, :generateDebugSources, :mockableAndroidJar, :最后解决办法如下: 因为buildToolsVersion、buildToolsVersion、compileSdkVersion、targetSdkVersion、comp
2016-04-13 10:30:19 32587 5
原创 Android Material Design 之 TabLayout学习
在开发中,我们常常会遇到像网易新闻客户端的Tab的开发,如下图:以往我们在实际开发中可能会使用第三方开源的PagerSlidingTabStrip或者ViewPagerindicator去实现类似的效果。但自从Material Design出世后,Google给我们提供了TabLayout去实现了,这里就是简单学习下TabLayout的使用。首先,我们得保证更新支持库开发环境支持库至少22以上,如下
2016-02-18 10:34:40 2922 1
原创 算法学习之二分法查找
二分法又称折半查找,故名思意就是就是从中间开始比较查找,其基本思路是:假设数据是按升序排序的,对于给定值 x,从序列的中间位置开始比较,如果当前位置值等于 x,则查找成功;若 x 小于当前位置值,则在数列的前半段中查找;若 x 大于当前位置值则在数列的后半段中继续查找,直到找到为止。
2016-01-22 15:25:11 8165
原创 Android开发中编码性能问题之for-each
在以往的开发中有些东西没有注意到,这里特意记录下。 for-each增强型循环,做开发的都不会陌生,简单来说for-each比较简洁提高遍历效率。以往我们遍历循环都是如下:List<String> testList = new ArrayList<String>(); for(int i = 0; i < testList.size(); i++){ Sys
2016-01-21 11:29:52 2302
原创 AndroidStudio 中如何查看获取MD5和SHA1值(应用签名)
以前在Eclipse中我们获取MD5和SHA1很容易就找到了如下图所示:就可以在Eclipse中看到所需要调试的MD5和SHA1。但是在AndroidStudio中我找了一圈也没有发现能查看调试的MD5和SHA1(请原谅我菜)。然后经过同学介绍了一些资料,自己琢磨了一下,就记录下怎样在AS中查看SHA1和MD5。第一种方法,使用keytool首先我们得在系统的环境变量中配置下keytool,keyt
2015-12-15 18:44:33 59299 8
原创 AndroidStudio安装SVN遇到的坑爹的问题Can't use Subversion command line client
在把项目从EC上搬到AS上遇到了一个奇葩的SVN问题,搞了好久才搞好。真是日了dog了!问题如下: 1.Can’t use Subversion command line client: svn Probably the path to Subversion executable is wrong. Fix it.Errors found while svn working copies dete
2015-12-03 19:28:58 30437 2
原创 Android ListView性能提升小技巧
虽然现在都推荐Recyclerview来替换ListView,但在实际开发中我们用到ListView的开发者还是居多的。那么不可避免的就是在使用ListView时我们要注意其性能,要对其进行优化的问题也是一个老生常谈的问题了。那么本人就简单说下自己所知道的优化方案吧!使用ViewHolder,复用缓存资源。Item的布局层次越少越好,避免深层次嵌套。在快速滑动的时候不加载图片(某些情况下可以不
2015-11-26 18:28:24 1258 2
原创 Android LruCache图片缓存使用(二)
从上一篇文章LruCache的源码简介中,我想我们可以知道LruCache的基本实现原理了!如果没有了解的可以先看看LruCache的基本介绍。那在实际开发中我们如何使用LruCache呢?首先,我们要覆写sizeof这个方法。如下:int maxCache = (int) (Runtime.getRuntime().maxMemory() / 1024);//得到应用的最大可用内存
2015-11-24 17:52:00 1615 1
转载 Android性能优化之常见的内存泄漏
转载自:http://blog.csdn.net/u010687392/article/details/49909477前言对于内存泄漏,我想大家在开发中肯定都遇到过,只不过内存泄漏对我们来说并不是可见的,因为它是在堆中活动,而要想检测程序中是否有内存泄漏的产生,通常我们可以借助LeakCanary、MAT等工具来检测应用程序是否存在内存泄漏,MAT是一款强大的内存分析工具,功能繁多而复杂,而Lea
2015-11-24 10:39:06 1636
原创 Android LruCache图片缓存使用(一)
LruCache我想对于做Android的人来说肯定是不会陌生的,在各种用到大量加载图片的地方就能看的这个类的身影,各大图片框架里面都有用到LruCache。最近项目一阶段的活已经做完了,发现自己好久没学习了,所以随便写点东西使自己学习学习。LruCache是Android中专门用来做图片缓存处理的,它有一个特点,当图片达到了预先设定的值的时候,那么最近使用次数最少的图片就会被回收释放掉。LruCa
2015-11-23 16:50:40 1303
转载 关于Android应用开发的一些安全注意事项
原文地址: http://www.javacodegeeks.com/2014/05/simple-tips-to-secure-android-app.html http://developer.android.com/training/articles/security-tips.htmlAndroid已经具有内置到操作系统的安
2015-11-23 11:01:44 682
原创 Android图片缓存框架Android-Universal-Image-Loader的使用详解
关于Android-Universal-Image-Loader的使用和配置,基于universal-image-loader-1.9.4的博文
2015-10-17 12:45:16 4169 10
原创 Android ListView的addHeaderView与addFooterView的详解
在Android开发中ListView是一个使用广泛的控件,ListView在开发中和其它组件组合起来可以做出一系列优美的效果!今天主要随意写写,ListView中的addHearView()和addFooterView()在使用中应该注意的一些问题。 1.addHeaderView()的功能是在ListView的头部添加一个布局,它可以重复添加多个布局。同理,addFooterView
2015-09-18 20:54:26 16923 2
LruCache缓存demo
2015-11-24
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人