- 博客(30)
- 资源 (3)
- 收藏
- 关注
原创 对 FLAG_ACTIVITY_NEW_TASK、FLAG_ACTIVITY_CLEAR_TOP、FLAG_ACTIVITY_SINGLE_TOP 的理解
默认情况下(即没有 newtask flag),启动一个 Activity 时,被启动的 Activity 会在启动它的 Activity 的栈中创建(不管它们 taskAffinity 是否一样)。加上 newtask flag 后,启动一个 Activity 时,如果需要创建,被启动的 Activity 会在它需要的栈中创建。activity 在它需要的栈里存在,它上面的 activity 会出栈,它自己 onNewIntent 被调用。
2024-03-13 16:05:29 701
原创 Android TV焦点控制逻辑
android:nextFocusUp="@id/下一个控件的id"分别对应该控件按下↑、↓、←、→键对应的下一个控件。
2023-10-25 08:40:22 850
原创 Android设备如何保证数据同步写入磁盘
用OutputStream写入Sd上的文件,写完后会有打印提示,如果立即把机器断电,再打开被写入的文件,发现成了0字节。一直怀疑是写在缓存,没同步到磁盘,于是在write()后加了个flush(),结果还是0字节。用OutputStream的子类FileOutputStream打开文件,FileOutputStream中就有同步的方法:FileOutputStream.getFD().sync(),在write()后执行就不会出现文件清0的问题了。所以flush根本没用。
2023-07-26 17:00:58 563
原创 android 修改最近任务列表的图标以及名称
ActivityManager.TaskDescription description = new ActivityManager.TaskDescription("名字", R.drawable.gp, 0);在activity里加入 如下代码。
2023-05-19 11:22:40 637
原创 Android代码如何重构
讲一下Android代码重构的思路1.新增提取函数<1>复杂逻辑拆成函数<2>大函数拆成小函数2.父类和子类之间转移函数<1> 把子类的x相同逻辑,提取成父类函数<2> 把父类的非通用逻辑,提取成用到的个别子类中的函数3.类之间转移函数如果类之间重复调用耦合,可以考虑把耦合的逻辑全部提取到一个类,符合单一原则4.复杂类拆分成几个类按照单一原则比如图片下载类拆解成三个:1.catch缓存策略类2.Download下载类3.Im
2022-04-12 20:53:36 394
原创 Android studio 多渠道打包
build.gradle中,old 是原始的资源标签,aa是新的资源标签android {... sourceSets { aa.res.srcDirs = ['src/main/res-aa'] old.res.srcDirs = ['src/main/res'] } flavorDimensions "main" productFlavors { //
2022-02-17 08:36:16 847
原创 高并发和高性能
互联网应用系统开发肯定经常会看到高并发和高性能这两个词,可谓是耳熟能详,而具体的含义和关系真的如你所想的,真正的理解了吗?这次,我也结合自己的理解,来跟大家分享一下。先来看一个例子:一个蓄水池,是1m*1m*1m=1立方米大小,有一个出水口,出水口每秒钟流出0.1立方米,那么这个蓄水池的并发量是1立方米,出水速度是0.1立方米/秒。如果增加一个出水口,都是每秒钟流出0.1立方米,那么这个蓄水池的并发量没变,但是出水速度变成了0.2立方米/秒。同理,增大了出水口,蓄水池的出水速度也
2021-12-16 08:37:06 564
原创 Android 设计模式-面向对象六大原则
前言先说下一下为什么决定来写关于设计模式的文章,本人也是从事开发很多年了,很多人肯定都曾有过这样的想法,就是把设计模式背下来,到时候项目用到的时候就套用下,往往用到的时候早就忘了怎么写了,或许只是简单记住几个写法,现在看来这并不是真正的理解,套用不等于理解,真正理解之后会在思维里面形成一种模型,在做架构设计、封装代码时候会自然的把场景带入,去理解每一种模式的场景、优点、缺点,才能更好的运用。 设计模式是一套被反复使用、多数人知晓的、经过分类编目的、代码设计经验的总结。使用设计模式是为了可重用代...
2021-06-15 13:55:35 158
原创 JAVA – 虚函数、抽象函数、抽象类、接口
JAVA –虚函数、抽象函数、抽象类、接口1. Java虚函数虚函数的存在是为了多态。C++中普通成员函数加上virtual关键字就成为虚函数Java中其实没有虚函数的概念,它的普通函数就相当于C++的虚函数,动态绑定是Java的默认行为。如果Java中不希望某个函数具有虚函数特性,可以加上final关键字变成非虚函数PS:其实C++和Java在虚函数的观点大同小异,异曲同工罢了。2. Java抽象函数(纯虚函数)抽象函数或者说是纯虚函数的存在是为了定义接...
2021-01-27 13:54:26 128
原创 对Java回调的理解
A调用B中的方法b,需要传入A自身引用(传入A本身和传入A的接口,区别就是A本身可以用全部的函数,传接口只能用接口中的函数),方法b执行完毕后,再利用传入的A的引用,调用A中的方法...
2021-01-27 10:22:53 102
原创 java 单例模式的几种实现方式
java 单例模式的几种实现方式1.懒汉式public class Singleton { //2.本类内部创建对象实例 private static Singleton instance = null; /** * 1.构造方法私有化,外部不能new */ private Singleton() { }//3.提供一个公有的静态方法,返回实例对象 public static Singlet...
2021-01-22 13:58:13 105
原创 Android.mk文件语法规范及使用模板
Android.mk文件语法规范Introduction:Android.mk编译文件是用来向Android NDK描述你的C,C++源代码文件的,这篇文档描述了它的语法。在阅读下面的内容之前,假定你已经阅读了docs/OVERVIEW.TXT文件,了解了它们的脚色和用途。概述:一个Android.mk file用来向编译系统描述你的源代码。具体来说:-该文件是GNU Makefile的一小部分,会被编译系统解析一次或更多次的build系统。因此,您应尽量减少您声明的变量,不要认为某..
2020-11-16 14:35:41 139
转载 Android.mk编译 ----预编译详解
目前常用到的Android.mk编译目标, 包括编译包、二进制文件、预编译。1.常用编译目标BUILD_PACKAGE(既可以编apk,也可以编资源包文件,但是需要指定LOCAL_EXPORT_PACKAGE_RESOURCES:=true)BUILD_JAVA_LIBRARY(java共享库)BUILD_STATIC_JAVA_LIBRARY(java静态库)BUILD_EXECUTABLE(执行文件)BUILD_SHARED_LIBRARY(native共享库)BUILD_ST.
2020-11-16 10:04:16 514
原创 手机的AP,BP,CP侧
AP(application process):手机中的应用处理器CPU。操作系统、用户界面和应用程序都在AP上执行。BP(baseband):基带处理器。即手机中的modem,运行手机射频通讯控制软件,负责发送和接收数据。CP:基带芯片加协处理器 or 多媒体加速器。可以处理虚拟现实,增强现实,图像处理,HIFI,HDR,传感器等。...
2020-11-03 09:08:41 8385
原创 Input各种事件
1.onfocus 当input 获取到焦点时触发2.onblur 当input失去焦点时触发,注意:这个事件触发的前提是已经获取了焦点再失去焦点的时候才会触发该事件,用于判断标签为空。3.onchange 当input失去焦点并且它的value值发生变化时触发,个人感觉可以用于注册时的确认密码。4.onkeydown 按下按键时的事件触发,5.onkeyup 当按键抬起的时候触发的事件,在该事件触发之前一定触发了onkeydown事件--相当于一个按键,两个事件,没怎么用过6.on..
2020-10-27 09:31:36 767
转载 Android SeLinux权限问题和解决方法
1. 确认 seLinux导致权限问题1.1 标志性log 格式:avc: denied {操作权限} for pid=7201comm=“进程名” scontext=u:r:源类型:s0 tcontext=u:r:目标类型:s0 tclass=访问类别 permissive=01.2 举例:Kenel log:avc: denied { execheap } for pid=7201 comm="com.baidu.input" scontext=u...
2020-10-27 09:27:41 1050
转载 Cmake
什么是 CMakeAll problems in computer science can be solved by another level of indirection.David Wheeler你或许听过好几种 Make 工具,例如GNU Make,QT 的qmake,微软的MS nmake,BSD Make(pmake),Makepp,等等。这些 Make 工具遵循着不同的规范和标准,所执行的 Makefile 格式也千差万别。这样就带来了一个严峻的问题:如果软件想跨平台...
2020-10-12 14:53:59 281
原创 使用scrollview导致页面缩小 页面中使用了weight属性
如果在scroll 里面用到了weight属性 导致了页面布局不完整那么可以尝试使用scrollview添加属性 android:fillViewport="true"亲测可行
2019-07-31 17:27:55 135
转载 【转】Android studio把model打成aar包,还有so文件和aar文件的使用
今天说下自己项目遇到的问题,Android studio(简称as) model转变成jar包使用。1.其实每次as编译,model都会生成aar文件,比jar包更强大,他可以包含资源文件,还有第三方引用jar如下图2.aar跟jar使用方式一样直接放libs包下面,但是需要注意一点,如果你同时还引用so文件,就必须创建jniLibs文件存放so文件,否则会找不到so文件;如下图...
2019-05-10 18:50:57 730
转载 观察者模式与消费者模式的区别(转)
再说概念这两个模式确实有点相似,都为了实现程序的解耦产生的,观察者一般又称发布/订阅模式,它一般是有一个主题对象,然后有多个订阅者去关注它,当它的状态发生变化时,会自动通知这些订阅者;而消费者模式类似一个缓存队列的概念,它也称为生产者/消费者模式,生产者只负责生产数据不去做处理(缓解高并发的问题),而消费者只从消费中间件里拿到所要处理的数据,并进行相应的逻辑处理工作,生产者与消费者是相互不知道...
2019-05-07 09:08:59 324
转载 [转] 推荐一个好用小巧的Android引导蒙版(浮层)库
推荐一个好用小巧的Android引导蒙版(浮层)库 更新:目前该库已更新v2.0版本,修改了调用api,详细使用可以看:可能是最好用的Android引导层库前言每当一个项目开发一个新功能,总会想办法及时让用户得知有这样一个新功能,这时通常会采用引导页或者蒙版(浮层)的方式提心用户,这里有需要关注的新内容。遇到这种需求,最简单的想法就是将引导的布局直接写在对应的页面中,在首次打开时...
2018-11-06 17:48:09 182
转载 大于6.0系统 蓝牙扫描 LeScanCallback 方法 不回调
问题描述公司的 app 要链接BLE蓝牙设备,最近发现在 6.0 系统,startLeScan(mLeScanCallback);回调不触发.查资料发现 >6.0 需要一个模糊位置权限才能使用蓝牙,至于为什么蓝牙需要位置权限,我也很意外.解决思路 1.1 清单加入位置权限(有可能清单中已经具备了)<uses-permission android:name="android.permis...
2018-03-06 13:47:36 497 1
转载 【Android基础】页面跳转与传值(Activity跳转与传值)
一个Android应用程序很少会只有一个Activity对象,如何在多个Activity之间进行跳转,而且能够互相传值是一个很基本的要求。本次我们就讲一下,Android中页面跳转以及传值的几种方式!Activity跳转与传值,主要是通过Intent类来连接多个Activity,通过Bundle类来传递数据。最常见最一般的页面跳转代码,很简单,如下: 也可以这样写:
2014-08-29 16:07:15 409
TortoiseGit-2.10.0.2-64bit(含汉化).7z
2020-04-03
Android通过相机预览使用原生接口捕捉人脸并取框,androidstuido工程
2019-04-29
AndroidUSB摄像头源码,androidstudio编译,亲测可用,外接摄像头直接出现图像
2019-03-28
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人