- 博客(13)
- 资源 (6)
- 收藏
- 关注
原创 Android模拟器安装为系统应用
1、链接设备:adb connect 127.0.0.1:7555(这个是mumu模拟器)2、输入下面命令:adb rootadb remount3、将我们的应用push到/system/app/目录下即可:adb push C:\Users\chenpeng02\Desktop\appuse-debug.apk/system/app/EmptyActivity4、进入这个apk,cd /system/app,然后ls -l查看我们应用的权限,让我们的应用可读可写可执行:chm.
2020-08-28 11:01:46 811
原创 区分界面是window还是activity
遇到一个第三方界面,如何区分是window还是activity方式一:如果可以浮在我们自已应用的上方,那么我们可以写个activity,然后让这个陌生的东西浮现在我们activity的上面,看是否对我们activity的生命周期产生影响,如果没有影响那么就是window方式二:抓取log,查找关键字windowManager、addview,如果看到如下信息,那么他就是一个windowD WindowManager: G20: addView viewPackageName = [com.ch
2020-08-28 10:52:24 356
原创 Android startActivityForResult Kotlin写法
Android activity之间可以相互传递数据,从MainActivity传递数据到SecondActivity中,也可以由SecondActivity返回数据给回到MainActivity。向下一个Activity传递数据Intent在启动Activity过程中可以传递数据。Intent中提供了putExtra方法进行重载,举例来讲:将字符串从一个Activity中传递至第二个Activity中。 button1.setOnClickListener { .
2020-08-23 12:46:37 3066
转载 Android网络安全之NetworkSecurityConfig
google在android p为了安全起见,已经明确规定禁止http协议额,但是之前很多接口都是http协议,我们一般是这样解决的:在res目录下创建xml目录,然后随便创建一个.xml文件,里面内容如下:<?xml version="1.0" encoding="utf-8"?><network-security-config> <base-config cleartextTrafficPermitted="true" /></network
2020-08-17 20:05:55 32182
原创 MediaPlayer无法播放,报错Error (1,-2147483648)
之前的mediaPlayer的demo突然跑起来无法播放了,最后了解到是因为AndroidP9.0后限制了明文流量的网络请求,非加密的流量请求都会被系统禁止掉 导致mediaplayer 播放uri发生Error (1,-2147483648)1、在 res 下新建一个 xml 目录,然后创建一个名为:network_permission_config.xml 文件 ,该文件内容如下:<?xml version="1.0" encoding="utf-8"?><networ
2020-08-17 19:29:03 10651 10
转载 Activity与View的生命周期
启动一个带ImageView的Activity:在Activity onCreate方法中初始化了View , 调用了View 的onFinishInflate 在执行完 Activity的 onPostResume方法之后(第一次onResume之后)才真正开始了View的绘制工作: onAttachedToWindow --> onMeasure --> onSizeChanged --> onLayout --> onDraw 当按住锁屏键的时候,即.
2020-08-17 17:17:23 619
原创 Activity与SurfaceView的生命周期
程序启动,并且直接开启mediaPlayer播放视频:跳转到第二个activity:跳转回surfaceView的activity:back键退出activity:
2020-08-17 17:16:18 914
转载 开源框架解读--RxLifeCycle解析
一、介绍RxLifecycle目的:解决RxJava使用中的内存泄漏问题。例如,当使用RxJava订阅并执行耗时任务后,当Activity被finish时,如果耗时任务还未完成,没有及时取消订阅,就会导致Activity无法被回收,从而引发内存泄漏。为了解决这个问题,就产生了RxLifecycle,让RxJava变得有生命周期感知,使得其能及时取消订阅,避免出现内存泄漏问题。二、使用首先来介绍下RxLifecycle的使用。1.添加依赖implementation 'com.t
2020-08-16 14:54:10 610
转载 开源框架解读--EventBus简析
EventBus 是一款在 Android 开发中使用的发布/订阅事件总线框架,基于观察者模式,将事件的接收者和发送者分开,简化了组件之间的通信,使用简单、效率高、体积小!下边是官方的 EventBus 原理图:EventBus 的用法可以参考官网,这里不做过多的说明。本文主要是从 EventBus 使用的方式入手,来分析 EventBus 背后的实现原理,转载,以下内容基于eventbus:3.1.1版本,主要包括如下几个方面的内容:Subscribe注解 注册事件订阅方法 取消注册 发
2020-08-12 17:52:13 328
转载 开源框架解读--ButterKnife简析
ButterKnife 算是一款知名老牌 Android 开发框架了,通过注解绑定视图,避免了 findViewById() 的操作,广受好评!由于它是在编译时对注解进行解析完成相关代码的生成,所以在项目编译时会略耗时,但不会影响运行时的性能。接下来让我们从使用到原理一步步深入了解这把黄油刀的故事!转载以下内容基于 butterknife:8.8.1 版本,主要包括如下几个方面的内容:简单使用 原理分析 注解处理器 JavaPoet一、简单使用首先编写一个 ButterKnife 简单使
2020-08-12 11:45:08 692
转载 ARouter原理解析
一、ARouter概述用简单一两句话总结出来:ARouter通过Apt技术,生成保存路径(路由path)和被注解(@Router)的组件类的映射关系的类,利用这些保存了映射关系的类,Arouter根据用户的请求postcard(明信片)寻找到要跳转的目标地址(class),使用Intent跳转。原理很简单,可以看出来,该框架的核心是利用apt生成的映射关系。使用时,在每个需要对其他module提供调用的Activity中,都要声明类似下面@Route注解,我们称之为路由地址。@Route(pa
2020-08-09 15:54:52 6633 1
转载 Android平台页面路由框架ARouter原理
本次分享将主要围绕以下几个方面:一、为什么需要路由框架二、ARouter的技术方案三、使用ARouter的最佳实践四、未来开发计划一、为什么需要路由框架原生的路由方案存在的问题首先谈一谈原生的路由方案存在的问题以及为什么需要路由框架。我们所使用的原生路由方案一般是通过显式intent和隐式intent两种方式实现的,而在显式intent的情况下,因为会存在直接的类依赖的问题,导致耦合非常严重;而在隐式intent情况下,则会出现规则集中式管理,导致协作变得非常困难。而且一般而言配置规则都是在Manifest
2020-08-09 11:34:39 2723
Windows环境下32位汇编语言
2016-06-09
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人