- 博客(28)
- 收藏
- 关注
原创 android10 系统定制:添加语言界面优化
从Settings的源码可以看到他实际上是加载了系统中的一个Fragment到Settings中:LocalePickerWithRegion,继承自ListFragment。最后cd到frameworks/base/core/res目录下执行mm编译res模块,编译完成后回到源码目录执行make update-api,最后再执行make即可。由于ListFragment是公开的,第三方应用可能会调用,我们尽量不改他。增加了头部底部20dp的留白,分割线。
2024-08-09 14:28:57 325
原创 android10 系统定制:增加应用锁功能
上述代码先判断了是否上锁,如果上锁了则弹出拦截窗口,并返回START_ABORTED状态不启动app。然后在解锁成功的回调方法里再次调用startActivityMayWait方法,再次进来应用则会处于解锁成功状态将走系统原有的流程正常启动app。逻辑和之前一样在task创建完成后,使用task获取包名判断是否加锁,是的话则返回START_CANCELED取消启动并弹出解锁页面。实现效果如下,上锁应用在桌面或最近任务打开弹出解锁界面,需要解锁成功才能打开应用。解锁完成后再正常启动应用。
2024-08-09 14:26:10 950
原创 安卓10Activity的启动流程
main中跨进程调用了AMS的attachApplication方法,通知ams进程创建完成。AMS又跨进程调用了ActivityThread.ApplicationThread.bindApplication方法让应用进程去创建Application,最终在ActivityThread的handleBindApplication方法完成了Application的创建并调用了它的onCreate方法。系统进程的工作差不多了,可以猜到接下来应该就是跨进程调用app进程的代码了。1.创建appContext;
2023-12-29 14:22:17 1003 1
原创 android服务启动失败Unable to start service Intent U=0: not found
android启动服务失败,提示:Unable to start service Intent { cmp=xxx/.xxx} U=0: not found
2022-08-30 17:44:03 9341
原创 android9 SystemUI-NavigationBar
一.NavigationBar的创建NavigationBar的创建是从StatusBar.makeStatusBarView 开始的public class StatusBar ...{ ... protected void makeStatusBarView() { ... try { boolean showNav = mWindowManagerService.hasNavigationBar(); if (DE
2022-01-26 18:13:26 2361
原创 android9 SystemUI启动流程
一.SystemUI概述SystemUI 是一个系统应用,apk路径位于/system/priv-app源码路径位于:/framework/base/packages/SystemUI主要负责功能:StatusBar:状态栏NavigationBar:导航栏(返回、home、近期任务)Notification Panel:通知栏以及快捷设置面板壁纸管理截图功能Recents:近期任务(android9使用的是launcher3里面的近期任务,但是SystemUI9也保留了相关代码,可在s
2022-01-25 15:33:09 1802
原创 android模拟遥控器home点击
一般来说模拟home键大多使用以下方法: val i = Intent(Intent.ACTION_MAIN) i.flags = Intent.FLAG_ACTIVITY_NEW_TASK i.addCategory(Intent.CATEGORY_HOME) startActivity(i)问题是我们的应用运行在机顶盒,盒子里面安装了两个launcher,上述代码执行后会弹出选择launcher界面。测试发现遥控器点击home键并不会弹出launcher选择界面,改用Instrume
2022-01-20 14:18:46 2594
原创 WeexSDK编译错误Build command faile
项目编译报错Build command failed.Error while executing process D:\androidSDK\cmake\3.10.2.4988404\bin\ninja.exe with arguments {-C G:\AS4.0Ws\gameco-master\gameco-me-app\plugins\eeui\WeexSDK\android\sdk.cxx\cmake\debug\arm64-v8a libweexjsb.so libweexjst.so wee
2021-03-03 18:13:08 745 1
原创 android解析key不确定的json数组,格式不规范的数组
android解析key不确定的json数组,格式不规范的数组,动态key数组解析
2020-11-18 12:23:09 437
原创 flutter基础:调用图库及图片上传
本文主要介绍flutter调用系统相册、相机以及图片上传的实现方法,主要用到了image_picker以及dio插件,解决了图片上传格式错误.octet-stream的问题
2020-11-16 19:12:32 3294 2
原创 flutter基础:listview的使用
简介listview是flutter中最常用的滚动组件之一,可以非常方便的实现一个方向上的多个子组件的线性排列。先看一下它的默认构造函数:ListView({ Key key, Axis scrollDirection = Axis.vertical, bool reverse = false, ScrollController controller, bool primary, ScrollPhysics physics, bool shrink
2020-11-04 18:29:42 756
原创 flutter: flutter pub get failed65、项目构建时卡死
学习flutter时遇到的问题1.构建项目时,项目一直卡在创建页面:我的情况是:flutter doctor显示的配置已经完成,FLUTTER_STORAGE_BASE_URL和PUB_HOSTED_URL环境变量也配置了,但是就是卡在这个页面。后来强制杀死进程,多试了几遍竟然构建成功了,运行到手机也正常。后来在使用http的时候http: '>=0.11.3+12'点击pubget,出现了一个错误:flutter pub get failed65查了一些资料发现这两个问题都跟环境变量
2020-11-03 15:04:51 2667 5
原创 android apt示例
android atp 示例,注解的自定义,编译时注解处理器的实现和使用、代码的生成及反射调用、实现与butterknife类似的BindView,OnClick功能。
2020-10-19 15:20:46 186
原创 android注解和反射的理解
android注解和反射的理解刚开始使用butterknife的时候,觉得太爽了,为啥加个@bindview就不用写烦人的 findViewById了呢?然后还有EventBus、Retrofit现在很多库都用到了注解, 现在来整理一下。还有处理运行时注解的反射也写在一起吧。一、注解(Annotation)1.基础概念注解简单来说可以理解为代码里的特殊标记,这些标记可以在编译、类加载和运行时被读取,并进行相应的处理。例如最常见的override。注解是一种元数据(描述数据的数据)。注解是Jav
2020-10-12 14:11:13 207 1
原创 android观察者模式简单实现
android观察者模式1.定义观察者模式又被称为发布-订阅模式,属于行为型设计模式的一种,是非常常用的模式。它的定义如下:定义对象间一种一对多的依赖关系,每当一个对象改变状态时,则所有依赖于它的对象都会得到通知并被自动更新。2.简介观察者模式中包含以下角色:Subject:抽象被观察者(即抽象主题)。抽象观察者把所有观察者对象保存在一个集合,每个被观察者都有任意数量的观察者。抽象观察者提供一个接口,可以增加和删除观察者。ConcreteSubject:具体被观察者(具体主题)。具体被观察者
2020-10-08 23:52:33 384
原创 android studio Could not get resource、connection refuse解决办法简单记录。
1.connection refuse一般是代理问题(错误提示忘记截图了=-=):配置代理127.0.0.1,1080使用本机代理,或者不使用代理,点上面的No proxy,都试试吧。两种情况都试过解决问题…有点晕…o(╥﹏╥)o…2.Could not get resource像这样的。。。我遇到的是插件版本不对的问题,因为项目是git上直接copy下来的,很容易出现这个错。把版本...
2020-03-24 23:20:57 889
原创 andorid用户行为统计:AOP在android中的应用
1.用户行为统计怎么做用户行为习惯、时间已下代码封装?高度耦合,代码冗余,不利扩展维护违背单一职责原则 ,统计与登录功能无关??设计模式 策略模式?? public void myLogin(View view) { long beginTime = System.currentTimeMillis(); SystemClock.sleep(500); ...
2020-03-13 15:22:17 330
原创 android自定义view DrawText()方法文字竖向居中解决方案。
问题:自定义view的时候,drawText()方法画出的文字竖直方向没有居中,如下代码: @Override protected void onDraw(Canvas canvas) { super.onDraw(canvas); //y轴 canvas.drawLine(getWidth() / 2, 0, getWidth() / ...
2020-03-09 17:22:58 1200
原创 ScrollView子控件没有充满全屏
如图:scrollview大小为全屏(线框部份),包含的线性布局宽高(蓝色块部份)都为 match_parent,但是线性布局并不充满scrollview;解决办法:scrollview中添加属性:android:fillViewport=“true” 即可;...
2019-06-23 16:13:37 854
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人