随笔分类 -  Android

摘要:一、使用方法 1、添加依赖。 2、使用。 3、编译运行。 二、原理解析 很明显的我们可以看出,ButterKnife.bind(this) 是 activity和ButterKnife建立关系的地方,我们从这里入手分析。 >>点击进入 bind >> 点击进入 createBinding 主要的过程 阅读全文
posted @ 2019-02-26 14:43 千彧 阅读(2239) 评论(0) 推荐(0)
摘要:一、反编译 默认你的电脑中完好的有java环境 1、下载 Android killer 链接: https://pan.baidu.com/s/1s6lfm8CbdU9ABYEOhdFWxA 提取码: n4uj 2、解压后打开 Android killer.exe 运行 3、打开文件开始解压 (1) 阅读全文
posted @ 2019-01-23 17:11 千彧 阅读(2595) 评论(0) 推荐(0)
摘要:替换gradle-wrapper.properties里面 distributionUrl=https\://services.gradle.org/distributions/gradle-4.1-all.zip 即可 ,这个为 gradle版本问题,低版本上无法识别google仓库。 阅读全文
posted @ 2019-01-15 11:05 千彧 阅读(5007) 评论(0) 推荐(0)
摘要:缺少jar包 reactive-streams-1.0.0.jar 和 reactive-streams-1.0.0-sources.jar 常用于 Rxjava 开发过程中 阅读全文
posted @ 2019-01-09 10:38 千彧 阅读(2842) 评论(0) 推荐(0)
摘要:private LocationManager lm;//【位置管理】 @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_... 阅读全文
posted @ 2019-01-09 10:37 千彧 阅读(630) 评论(0) 推荐(0)
摘要:主要是因为你的app在短时间内输出太多次的日志,导致日志丢失 阅读全文
posted @ 2019-01-07 17:08 千彧 阅读(6390) 评论(0) 推荐(2)
摘要:区别: ObjectAnimator 是直接对某个view进行更改。 ValueAnimator 根据 TimeInterpolator 在不断产生相应的数据,来传进view ,view自己做改变。 介绍: 1.属性动画是通过改变某个控件的属性值来创造动画,比如在规定的时间内改变某个控件的X坐标,则 阅读全文
posted @ 2018-12-29 17:56 千彧 阅读(2781) 评论(0) 推荐(0)
摘要:错误描述今天在Github上面下载了一份代码,然后导入到Android Studio中直接报错误错误描述如下:Error: Unable to find method ‘org.gradle.api.internal.project.ProjectInternal.getPluginManager( 阅读全文
posted @ 2018-12-29 16:25 千彧 阅读(9475) 评论(0) 推荐(1)
摘要:首先要打开SDK的下载位置,找到以下陌路: 首先要打开SDK的下载位置,找到以下陌路: android-sdk\extras\intel\Hardware_Accelerated_Execution_Manager\IntelHaxm.exe 运行IntelHaxm.exe安装, 阅读全文
posted @ 2018-12-29 09:48 千彧 阅读(503) 评论(0) 推荐(0)
摘要:1、不要使你的文件过大 Sp 在创建的时候会吧整个xml问文件全部载入内存,如果你的文件比较大: 1、第一次从sp取值时,会阻塞主线程,使页面卡顿。 2、解析sp的时候会产生大量的临时对象,导致频繁GC 3、key value 会永远在内存中,占大量内存。 2、不要把无关的配置绑在一个文件里: 3、 阅读全文
posted @ 2018-11-29 19:27 千彧 阅读(223) 评论(0) 推荐(0)
摘要:1、getActivity().startActivityForResult(); 与 fragment.startActivityForActivity(); getActivity().startActivityForResult()是使用Activity来启动Activity,与fragmen 阅读全文
posted @ 2018-11-29 18:16 千彧 阅读(679) 评论(0) 推荐(0)
摘要:1、图片占用内存:占用的内存 = 图片长度 * 图片宽度 * 单位像素占用的字节数 注: 图片长度和图片宽度就是图片在行列上的像素数量。 图片格式: ALPHA_8:表示8位Alpha位图,即A=8,一个像素点占用1个字节,它没有颜色,只有透明度 ARGB_4444:表示16位ARGB位图,即A=4 阅读全文
posted @ 2018-11-27 17:52 千彧 阅读(452) 评论(0) 推荐(0)
摘要:继承实现类关系: ActivityThread thread = new ActivityThread(); Context->ContextImpl ContextImpl context = new ContextImpl(null, mainThread, packageInfo, activ 阅读全文
posted @ 2018-11-26 10:34 千彧 阅读(211) 评论(0) 推荐(0)
摘要:日志输出: 阅读全文
posted @ 2018-11-08 14:34 千彧 阅读(227) 评论(0) 推荐(0)
摘要:SharedPreferences是Android提供的数据持久化的一种手段,适合单进程、小批量的数据存储与访问。为什么这么说呢?因为SharedPreferences的实现是基于单个xml文件实现的,并且,所有持久化数据都是一次性加载到内存,如果数据过大,是不合适采用SharedPreferenc 阅读全文
posted @ 2018-10-25 15:16 千彧 阅读(728) 评论(0) 推荐(0)
摘要:跟touch事件相关的3个方法: public boolean dispatchTouchEvent(MotionEvent ev); //用来分派event public boolean onInterceptTouchEvent(MotionEvent ev); //用来拦截event publ 阅读全文
posted @ 2018-10-24 11:43 千彧 阅读(279) 评论(0) 推荐(0)
摘要:,在手机屏幕中点击应用程序图标的情景就会引发Android应用程序中的默认Activity的启动,从而把应用程序启动起来。这种启动方式的特点是会启动一个新的进程来加载相应的Activity。这里,我们继续以这个例子为例来说明Android应用程序的启动过程,即MainActivity的启动过程。 下 阅读全文
posted @ 2018-10-24 09:28 千彧 阅读(368) 评论(0) 推荐(0)
摘要:解决方法: 如果还运行不了,在当前model的build.gradle下添加。 android{ ………… sourceSets.main { jni.srcDirs = [] } } android{ ………… sourceSets.main { jni.srcDirs = [] } } 阅读全文
posted @ 2018-08-27 16:47 千彧 阅读(2123) 评论(0) 推荐(0)
摘要:allprojects { repositories { flatDir { dirs 'libs' } jcenter() google() }} 阅读全文
posted @ 2018-08-13 11:07 千彧 阅读(3255) 评论(0) 推荐(0)
摘要:解决办法: 在AndroidManifest.xml文件中找到 全局样式文件 Theme,如图: 进入到这个文件,在前面增加 "Base".,如图: 阅读全文
posted @ 2018-08-03 17:51 千彧 阅读(213) 评论(0) 推荐(0)