- 博客(60)
- 资源 (8)
- 收藏
- 关注
原创 View的滑动冲突
分为三种情况:1. 内外部滑动方向不一致 ->最简单,两种解决方式:外部拦截法,内部拦截法2. 内外部滑动方向一致 ->较复杂,根据需求解决3. 包含以上两种情况的嵌套 ->复杂,根据需求解决后续更新详细解决方案...
2022-04-11 00:54:53 272
原创 View的事件分发机制
源码分析:入口:Activity的dispatchTouchEvent:->->->->->View.dispatchTouchEvent
2022-04-10 22:51:32 279
原创 Android inputType
详细请参考源码:frameworks/base/core/java/android/text/InputType.javaTextView | Android:inputType 输入类型的完整的列表:none没有内容类型。文本不可编辑。text只是老文本。对应于type_class_text | type_text_variation_normal。textCapCharacters可以与文本及其变体相结合,以请求所有字符的大写。对应于type_text_flag_cap_chara
2020-11-25 19:05:38 540
原创 Handler内存泄露原因及解决方法
三种方案:1.非静态内部类+弱引用2.静态内部类+弱引用3.Activity不可见时,清空消息队列Android 中handler机制太重要了,无时不刻的都在处理消息队列和任务队列,很多人不注意,在处理延时任务的时候持有activity,导致activity不能被早早的回收,从而降低了APP的效率和性能。比如下面经典的写法(很多人都会这样写): new Handler().postDelayed(new Runnable() { @Override
2020-11-25 18:06:23 754
原创 Android seLinux单编方法
在Android P上如果修改了selinux的内容, 可以通过以下方法来验证是否生效:1. 单编system/sepolicymmm system/sepolicy2. push system/etc/selinux 和 vendor/etc/selinux 到手机里面, 并重启手机. adb push $(PRODUCT_OUT)/system/etc/selinux /system/etc/ adb push $(PRODUCT_OUT)/vendor/etc/.
2020-11-20 16:35:06 2758
原创 [Android] 如何在代码中执行adb shell命令
直接上干货:通过Runtime.getRuntime().exec()实现具体请参考以下:input text 模拟输入内容input keyevent 模拟 手机的按键 比如音量键 home 键 返回键 input keyevent 3 模拟按下返回键,很强大的 还有 手柄的一系列按键,可以自己查查input tap 模拟点击 屏幕 生成 down-up事件 ,例如 input tap 300 400; 这个是 PX 值input swipe 模拟滑动屏幕 例如...
2020-11-04 16:09:49 4770
原创 You can configure Gradle wrapper to use distribution with sources. Apply后同步报错:Failed to open zip
Apply:You can configure Gradle wrapper to use distribution with sources.It will provide IDE with Gradle API/DSL documentation.后报错gradle同步失败:Failed to open zip file.Gradle's dependency cache may be corrupt (this sometimes occurs after a network connect
2020-11-04 14:39:43 3451
原创 Android app系统签名方法
1. 如果有项目代码那就非常简单了, 直接吧apk放到vendor下面,添加Android.mk,然后mm编译即可得到系统签名后的产物.Android.mk文件参考源码vendor/google/apps/Android.mk文件,因为该目录下都是apk文件,一部分是需要系统签名的apk(LOCAL_CERTIFICATE := platform),而另一部分是不需要签名的apk(LOCAL_CERTIFICATE := PRESIGNED)具体内容如下 LOCAL_PATH := $(c...
2020-06-10 17:58:32 1346
原创 Android 取得系统开机的时间
SystemClock.elapsedRealtime();//返回的是系统从启动到现在的时间,单位:msSystemClock.uptimeMillis();//返回的是系统从启动到当前处于非休眠期的时间,单位:ms//从某一时间开始计时long startTime = SystemClock.elapsedRealtime();// ......做某它事情long timer =...
2020-05-08 10:09:41 2284
原创 [Android基础] Activity加载模式
1.standard: 标准模式,这是默认的加载模式。2.singleTop: Task栈顶单例模式。3.singTask: Task内单例模式。4.送了Instance: 全局单例模式。
2020-04-19 12:42:53 125
原创 Android key store
1. androidkeystore 安全存储2. android keystore存储字符串https://www.jianshu.com/p/65b2aa6ec85fhttps://blog.csdn.net/zhangyi0618/article/details/83978407https://blog.csdn.net/sinat_29321583/article/deta...
2020-03-12 00:00:20 222
原创 [Java] 常用知识点记录
1. 字符串的插入和替换:StringBuilder.insert()与StringBuilder.replace()
2020-03-10 20:11:08 100
原创 [Java环境] Error: This Java instance does not support a 64-bit JVM
解决版本:打开控制面板,卸载32位java,安装64位javajre,jdk官网下载非常慢,稍后会上传可以从我这里下载~
2020-02-25 23:34:01 2016
原创 dpkg: error processing package grub-efi-amd64-signed
使用如下的办法解决:sudo apt-get cleansudo apt-get updatesudo apt-get install --reinstall python-minimal python-lockfile
2020-02-03 10:27:56 1888
原创 备战面试:MVC MVP MVVM MVPVM应用架构模式区别
分析主要是通过它的控制链、控制流向,View 的变化如何反馈到Model,以及Model的变化如何作用到View上。MVCView 持有了Controller,把事件传递给Controller,Controller 由此去触发Model层的事件,Model更新完数据(网络或者本地数据)之后触发View的更新事件MVC.pngMVPMVP.png咋看一下MVP只...
2019-12-16 00:02:53 570
原创 备战面试:MVC MVP MVVM应用架构模式区别
MVVM可以算是MVP的升级版,其中的VM是ViewModel的缩写,ViewModel可以理解成是View的数据模型和Presenter的合体,ViewModel和View之间的交互通过Data Binding完成,而Data Binding可以实现双向的交互,这就使得视图和控制层之间的耦合程度进一步降低,关注点分离更为彻底,同时减轻了Activity的压力。在比较之前,先从图上看看三者的异...
2019-12-16 00:01:02 436
原创 备战面试:MVVM应用架构模式
MVVM 模式,即指 Model-View-ViewModel。它将 View 的状态和行为完全抽象化,把逻辑与界面的控制完全交给 ViewModel 处理。如下图:MVVM 由下面三层组成:View:主要进行视图控件的一些初始设置,不应该有任何的数据逻辑操作。 Model:定义实体类,以及获取业务数据模型,比如通过数据库或者网络来操作数据等。 ViewModel:作为连接 V...
2019-12-15 23:57:13 184
原创 备战面试:MVP应用架构模式
MVC的缺点在Android开发中,Activity并不是一个标准的MVC模式中的Controller,它的首要职责是加载应用的布局和初始化用户 界面,并接受并处理来自用户的操作请求,进而作出响应。随着界面及其逻辑的复杂度不断提升,Activity类的职责不断增加,以致变得庞大臃肿。什么是MVP?MVP从更早的MVC框架演变过来,与MVC有一定的相似性:Controller/Prese...
2019-12-15 23:46:38 155
原创 备战面试:MVC应用架构模式
MVC模式介绍:MVC是Model-View-Controller的简称Model:模型层,负责处理数据的加载或者存储View:视图层,负责界面数据的展示,与用户进行交互Controller:控制器层,负责逻辑业务的处理MVC模式的特点:1.耦合性低;2.可扩展性好;3.模块职责划分明确MVC模式的不足:XML文件作为视图层,所做的事情比较有限,所以Ac...
2019-12-15 23:34:21 155
原创 Process 'command 'git'' finished with non-zero
因为通过网页下载的代码没有将git库一起下载下来,缺少git库,可以尝试通过clone将完整代码下载下来。
2019-12-12 15:14:00 4928 2
原创 Ubuntu硬盘挂载
1. 通过查看分区命令找到你的磁盘sudo fdisk -l2.创建想要挂在硬盘的目录sudo mkdir /home/data3.挂在硬盘(有时会自动挂载,没有自动挂载就手动挂载)sudo mount /dev/sda2/ /home/data/4.查看UUIDsudo blkid /dev/sda25.修改配置文件sudo gedit /etc/fstab...
2019-11-18 19:30:10 108
原创 Ubuntu终端无法打开/启动终端失败/Failed to execute child process "gnome-terminal"
输入gnome-terminal报错:usr/bin/python3:bad interpreter:No such file or directory安装最新python版本https://www.python.org/downloads/release/python-2716/安装步骤https://blog.csdn.net/weixin_43790276/arti...
2019-08-15 14:55:56 7532
原创 linux ubuntu系统下U盘只读文件系统问题
请参考:https://blog.csdn.net/ITBigGod/article/details/79914534
2019-06-26 09:50:47 710
原创 git nano/vim 编辑器如何退出
vim编辑器:Esc ->Shift+: →wq! →EnterNano编辑器:Ctrl+x→Y->Enter修改git默认的编辑器nano为vim的方法:git config --global core.editor vim
2019-05-24 15:57:49 2916
原创 开关机动画:Shutdown animation实现方案
android7.0代码没有关机动画的实现,默认是使用关机对话弹框完成。如果需要定制化关机动画,则需要重新设计。思路分为两种:一是新建一个shutdown animation服务,完全仿照bootanimation重新拷贝一份代码然后进行相关的修改,因为动画的显示逻辑都是一样的,不同的只是文件读取路径不一样,然后就是触发地点不一样。正因为差异很小,这样做的代价很大,而且涉及到很...
2019-05-23 20:48:02 2682
原创 Linux ubuntu常用工具
1. Beyond CompareBeyond Compare4安装及破解步骤请参考:https://blog.csdn.net/qq_26012495/article/details/86514147亲测可用~
2019-05-12 18:21:44 166
原创 AndroidXRef使用说明
OpenGrok一个快速、便于使用的源代码搜索与对照引擎。它帮助你搜索,对照,定位你的源代码树。它能够明白各种程序文件格式和版本控制历史记录。借助 Eclipse 以及本地源码可以比较方便地分析 Android 源码,但是对于 Native 代码的调用就无法通过 Eclipse 的快速定位来查看相应的 Native 源码了,而且 Android 源码中对 Native库的加载一般不是通过在 Sta...
2019-05-12 17:28:25 3432 2
原创 OpenGrok搭建方法
兄弟们我已经上传了源码,大家如果想要深入学习android尽快看起来吧~俗话说:工欲善其事必先利其器。这句话没毛病啊,学习android源码也需要好的工具才能事半功倍。强烈推荐大家使用opengrok工具,下面给大家详细说一下opengrok的搭建过程。导语阅读源码最常见操作的就是在函数/方法的调用与定义之间跳转,对于只有大部分源码来说,都可以通过ctags+vim获得比较好的体验...
2019-05-12 16:54:47 2948 3
原创 [Android基础] ListView
ListView是手机系统中使用非常广泛的一种组件,它以垂直列表的形式显示所有列表项。生成列表视图有以下两种方式:(1)直接使用ListView进行创建(2)让Activity继承ListActivity(相当于好Activity显示的组件为ListView)一旦在程序中获得了ListView之后,接下来就需要为ListView设置它要显示的列表项了。在这一点上,ListView显...
2019-04-29 01:16:06 229
原创 [Android Studio 日常奇怪问题记录] 之Can't find module
在编译一些老代码时经常遇到该问题,解决办法使用最新SDK版本进行编译。
2019-04-25 17:31:14 1696
原创 @Inject 注入 报报空指针异常
关于@Inject的基本用法我就不多说了,直接解决问题。1.请尝试将@Inject改成@Resource2.如果还报错请查看需要实例化的类(假设类为Test)如果是一个单例模式的类请使用 Test mTest = Test.getInstance();如果不是单例模式请使用 Test mTest = new Test();3.如果非要使用@Inject,请先学习基本用法^^~...
2019-04-24 16:16:08 3978
原创 [Android Studio 日常奇怪问题记录] 之Cannot read packageName from AndroidManifest.xml
请检查app下是否有build.gradle文件。
2019-04-23 15:58:44 3772 3
原创 [Android Studio 日常奇怪问题记录] 之Compilation failed; see the compiler error output for details.
直接上图:将cv.save(Canvas.ALL_SAVE_FLAG);改成cv.save();
2019-04-23 00:43:09 447
原创 [Android Studio 日常奇怪问题记录] 之ERROR: Failed to resolve: org.jetbrains.kotlin:kotlin-stdlib-jre7:1.3.21
问题原因:kotlin插件升级到1.2.41时提示kotlin-stdlib-jre7过时解决办法:将org.jetbrains.kotlin:kotlin-stdlib-jre7:1.3.21改成org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.3.21
2019-04-20 13:48:53 1616
原创 [Android Studio 日常奇怪问题记录] 之ERROR: All flavors must now belong to a named flavor dimension.
解决办法:在app的build.gradle->defaultConfig中添加flavorDimensions "default",问题解决。上图:
2019-04-20 13:46:08 182
Android Studio最新版本3.4.0
2019-04-27
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人