- 博客(22)
- 资源 (6)
- 收藏
- 关注

原创 DataBinding,让人又爱又恨的一个框架
简介刚开始学 DataBinding 的时候,并没有太多框架架构的意识,学了发现,这都啥跟啥,为什么要这么麻烦呢?于是就一直没有用上。后来在我真正领会了它的用法后,结合 MVVM 框架,发现用起来真的省事很多,它被人嫌弃的原因是因为有一定的门槛,而且错误提示不够友好,我在封装了 MVVMArchitecture 框架后,一直在公司内部推 DataBinding,希望大家用起来,但是事与愿违的是,你可以让大家用,但是不能期望大家用的好,这是很无奈的事情。本文就如何使用 DataBinding ,以及如何
2020-08-06 18:35:17
650
3

原创 MVVMArchitecture,一款可配置的 MVVM 框架
简介做了几年开发后,在 Android 领域我一直期望找到一种较为合理且易用的开发模式,从 MVC 到 MVP,再到现在的 MVVM,配合 Jetpack 套件,以及 Kotlin 和协程,还有 Rx 系列,我认为 Android 的开发范式已经成熟了,再通过 AS 和 Gradle 提供的动态引入代码的功能,完全可以封装一套开发框架,并尽可能提供定制化,基于基本的开发范式,通过配置文件来决定框架的内容。于是我开源了框架:MVVMArchitecture在开始之前,先来看一张 Google 推荐的架构
2020-07-23 15:52:02
442
原创 SVN Already locked - Clean Up
在提交的时候,突然就出现这个错误。网上的方法都没用。在进行Clean Up的时候,默认不勾选Break locks,手动选上,即可成功Clean Up。
2016-11-16 19:08:19
658
原创 The currently selected variant "debug" uses split APKs, but none of the 1 split apks are compatible.
AndroidStudio报错:The currently selected variant "debug" uses split APKs, but none of the 1 split apks are compatible with the current device with density "-1" and ABIs "".突然间就报这个错误,上午运行还好
2016-11-14 14:20:45
10028
1
转载 6.0.1 系统自带应用:时钟,源码编译问题
下载了Android 6.0.1系统源码后,我尝试编译时钟,在编译的过程中遇到了一个问题,AS报错如下:Error:(355, 50) 错误: 找不到符号符号: 变量 VISIBILITY_PUBLIC位置: 类 NotificationCompat可是整个项目并没有提示有问题,相应代码也可以找到变量,很奇怪为什么说找不到符号。后来在网上找了一些原因,有人说
2016-08-27 16:44:34
1062
原创 关于 CheckBox 控件 setChecked() 和 performClick() 方法的问题
1、场景:我需要通过Java代码设置CheckBox的状态和调用其监听的onClick方法。于是我这样做:checkBox.setChecked(true);checkBox.performClick();onClick方法倒是响应了,但是状态却没有改变,check的状态永远都是false,一时找不到什么原因。2、解决:后来通过实验发现,原来performClick就相当
2016-07-05 11:41:46
4093
原创 通过反射修改ViewPager最小滑动距离mTouchSlop
1、场景:在一些屏幕大DPI也大的设备上,比如镜面电视,使用ViewPager左右滑动会非常敏感,手指轻轻一动就划过去了,原因是因为系统的TouchSlop太小了。TouchSlop:系统能识别出被认为是滑动的最小距离,小于这个常量,系统不认为你在进行滑动。与设备有关。通过ViewConfigration.get(getContext()).getScaledTouchSl
2016-07-04 18:26:32
4295
1
原创 Mac中,Genymotion模拟器开启后,在AS无法看到设备的解决方法
打开Genymotion,Settings,ADB,勾选Use custom Android SDK tools,然后选择AS使用的SDK路径,重启模拟器即可。如何查看AS使用的SDK路径:按下Command+逗号键,或者Android Studio -> Preferences,搜索android sdk,就可以找到sdk的location。
2016-06-19 10:30:37
3002
原创 改变屏幕后,Activity、Fragment的生命周期变化
Activity:启动TestActivity:onCreateonStartonResumeonPostResumeonAttachedToWindow改变TestActivity屏幕方向:onPauseonSaveInstanceState(Bundle outState) // 在这里进行数据保存onStoponDestroyonCreateonS...
2016-02-19 17:44:11
1845
原创 IntentService
继承自Service独立线程,非UI线程执行完毕自动停止可多次启动,但只有一个实例,形成队列,一个一个的执行任务,并不会并行不适合绑定的Service在onHandleIntent方法中处理耗时任务通过广播给Activity发送消息
2016-02-18 17:13:40
447
转载 App Bar 点击返回按钮自动返回上一个指定的Activity
需求:从A界面去到B界面,点击B界面的App Bar返回按钮返回A界面,无需监听返回按钮,让系统自动处理。实现:1、首先在B界面设置显示App Bar的返回按钮:getSupportActionBar().setDisplayHomeAsUpEnabled(true);2、在AndroidManifest.xml中注册B界面的时候,声明其上一个Activit
2016-02-17 17:41:48
1329
原创 Android ScrollView 嵌套 WebView,WebView无法加载图片,出现空白区域
去掉WebView的以下属性即可android:layerType
2015-10-09 16:52:27
1781
原创 当Android系统内存不足时,会回收后台运行应用的内存
1、前言当Android系统的运行内存不足时,会把运行在后台的应用杀掉,将所有已经存在的Activity都杀掉,当用户重新返回应用的时候,所有被杀掉的Activity都会被重建,而且应用会运行在一个全新的进程当中,所有的数据都被重置为初始状态。那么这个时候往往都会出现错误数据。2、案例:XX应用,在登录页初始化所有数据 --> 登录成功进入主页面--
2015-09-24 12:11:42
3902
原创 Android 开发 - 个人小结
1、前言一般来说,对于小公司而言,往往都是一个人负责整个Android的编码工作,甚至还要兼测试,更恐怖的连设计和后台也一起搞定了。本人所在公司所幸分的比较清楚,产品、后端、设计、开发、测试都有,算是比较齐全,但是彼此间的配合还是不太好。在开发一个App的过程中,在沟通上就是个蛋疼的问题,个人感觉没有一个主导人物来把控,每个过程的对接都会或大或小的出问题,尤其是产品不给力的情况下。本文
2015-09-23 09:57:11
1273
原创 AndroidStudio 1.3使用心得
使用AS也有一段时间了,现在已经到了离不开它的地步,相比较而言,AS比Eclipse实在是好用和强大太多了,当然,刚开始接触的时候,由于Eclipse中毒太深,一时缓不过,有时甚至都想放弃AS了,不过还好坚持下来了,总算是好事。AS目前最新版本是1.3.1,从1.3更新到1.3.1也很快,只要下载10M多就可以了,不得不说这和1.2的时候差别是很大的,我1.2的时候经常更新失败,不得已
2015-08-26 10:01:43
512
原创 Android 全局TextView设置
在styles.xml文件中,设置@android:color/black然后在Application或Activity中设置theme,即可设置全局字体TextView的颜色
2015-08-04 17:24:55
1230
原创 Android NDK 调用方法发生java.lang.UnsatisfiedLinkError
可以正常加载so库,在调用so库中的方法时,发生了错误:java.lang.UnsatisfiedLinkError: Native method not found: com.yyq.jni.TestJNI.init检查自己编写的cpp和生成的.h文件,都没有错误。后来发现原来在自己编写的cpp文件中,方法没有用extern "C" { }包含起来,应该把所有的方法都放入此{
2015-06-17 16:15:32
506
原创 关于Volley网络框架中文乱码的问题
问题描述:使用StringRequest这个类访问网络的时候,返回来的数据包含中文,出现了中文乱码,无论怎么改服务端的文件或是改项目编码,或是用gbk和utf-8去重新编码返回来的字符串,都无法解决编码问题。打开这个类的源码,看看他是如何编码。解决方案:打开StringRequest类的源码,处理编码的方法如下:@Override protected Respo
2015-05-14 13:01:44
931
原创 Android 操作以太网,监听网线插拔和以太网开关,设置以太网静态IP等。
在做机顶盒项目的时候,有个需求是这样的:1、当网线插上机顶盒的时候,apk要及时响应,比如显示网线已经插上。拔掉网线也要响应。2、当插上网线的时候,可以查看以太网当前的IP信息以及是否是静态IP等。3、如果是动态IP,可以设置成静态的,然后设置静态IP、网关等信息。项目完成后,就把以太网相关的抽出来了,现在放出来,顺便记录记录!apk需要放置到/
2015-01-20 21:37:52
12589
原创 Android 修改输入法的输入语言
Android原生系统中,默认的输入法是“Android键盘(AOSP)”,此输入法包括55种输入语言,具体有哪一些,去看看原生系统里的就知道了,目测没有中文(不知道为啥)。还有一种“Google语音输入”,包含78种输入语言,包括中文。如果安装了其他的输入法,其输入语言得看输入法自身的了,比如搜狗中文就只有中文一种输入语言。下面介绍如何操作输入法。0、取得
2015-01-19 22:05:31
9066
原创 Android 设置apk开机自启,启动后自动禁用
在做一个向导类apk的时候,有这样的需求:1、开机后第一个界面显示apk的界面2、apk退出后自动禁用,也就是说在桌面上找不到该apk,再次开机后也不再显示该apk界面。实现:1、在MainActivity的onCreate方法里加入:// 启动一次后将自己给禁用掉 PackageManager pm = getPackageManager(); Com
2015-01-19 16:18:38
6572
1
Android 操作以太网,监听网线插拔和以太网开关,设置以太网静态IP等
2015-01-20
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人