自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(106)
  • 收藏
  • 关注

原创 窗口跳转管理补充

ActivityStackSupervisior管理ActivityStack:ActivityStack就是回退栈,分为系统和应用,id为0的是系统的回退栈,id为1的是应用的回退栈。ActivityStack管理着TaskRecord,也就是任务栈TaskRecord管理着ActivityRecord一般在点击手机Back键的时候就是在当前任务栈返回,返回到最底下一个activity时,就返回桌面(最底下的activity是从桌面图标启动的),而不是返回其他的任务栈,因为一个任务栈大致.

2020-07-02 16:39:15 206

原创 android学习系统

各种app需要的技术:新闻、办公、娱乐段子、生活服务:基础技术电商:高并发视频音乐:C摄影美图:图片处理通讯聊天:即时通信金融类:图表、安全android原生技术:rxjava、jetpack写应用的工具、语言:android、c、js、flutter、小程序构建项目工具、语言:gradle代码管理:git编程思想:reactive-X架构MVX: mvc、mvp、mvvm编程基本功: 数据结构、设计模式 计算机原理、网络知识、操作系统 ...

2020-05-29 17:30:59 659

原创 android代码编译过程相关知识

1、电脑只能处理二进制数据,也就是给他处理的只能是机器语言,而你的高级语言必须进行编译才能执行,也就是转换成汇编语言,然后转换成机器语言给电脑执行。用c语言进行编程,编译器会将你的c语言代码编译成汇编语言,再由汇编语言的编译器编译为机器语言,通常我们看到的可执行文件事实上就是机器语言的形式,进而让cpu理解和执行源代码 ->汇编语言 ->机器语言,也就是二进制2、汇编语言 ...

2020-03-18 17:27:06 336

转载 android应用架构

https://www.jianshu.com/p/734d3693da02https://www.jianshu.com/p/ccfc28128d68

2019-08-21 15:33:49 166

转载 android推送原理

https://www.jianshu.com/p/969e83d10680https://www.cnblogs.com/wangle1001986/p/7245479.html

2019-08-21 14:46:32 131

原创 onPageStarted、onPageFinished、shouldOverrideUrlLoading

进入一个h5,会调用onPageStarted-》onPageFinished, 或者调两次onPageFinished:onPageStarted-》onPageFinished-》onPageFinished如果在这个h5的onLoad方法里重定向,那么就不会调用onPageFinished:onPageStarted-》should...

2019-08-20 15:00:30 4308 1

原创 android版本适配

各版本适配:https://www.jianshu.com/p/a8fd3d1fa0a36.0运行时权限:https://blog.csdn.net/u014626094/article/details/809620519.0后台服务限制总结:https://blog.csdn.net/wozuihaole/article/details/81739870自己升级时所...

2019-06-20 15:26:54 121

转载 android中的内部存储和外部存储

https://www.jianshu.com/p/ad844547a43b

2019-06-20 14:54:06 136

转载 Android 关于arm64-v8a、armeabi-v7a、armeabi、x86下的so文件兼容问题

转载: https://www.cnblogs.com/janehlp/p/7473240.html 

2018-12-04 17:02:52 517

原创 第九章 四大组件的工作过程

SystemServer:是一个系统进程 ServiceManager:是一个BinderPoolActivty继承自ContextThemeWrapper; ContextThemeWrapper继承自ContextWrapper; ContextWrapper继承自Context;Context:是一个抽象类。上下文对象声明了要做哪些事情,但它只是一个空壳,是一个综合的环境,现在还并没有具

2018-02-09 17:47:36 366

原创 第八章 理解Window和WindowManager

一、概述Window是一个窗口的概念,当我们需要一个悬浮窗时,就用到了Window。 Activity、Dialog、Toast等都是通过一个Window来实现视图的展示的。 添加一个Window,其实就是通过WindowManager添加一个View,然后它会和WindowManagerService进行IPC,然后使添加的这个View形成一个Window窗口。所以Window是View...

2018-02-08 17:52:55 302

原创 第十一章 Android的线程和线程池

一、线程池1、什么是Android的线程池 Android中的线程池的概念来源于Java中的Executor,Executor是一个接口,真正的线程池的实现为ThreadPoolExecutor。ThreadPoolExecutor提供了一系列参数来配置线程池,通过不同的参数可以创建不同的线程池。 从线程池的功能特性上来说,Android的线程池主要分为4类,这4类线程池可以通过Executor

2018-01-31 17:46:55 284

原创 第十章 Android的消息机制

一、Android消息机制的作用 Android的消息机制主要是指Handler的运行机制,它的作用是提供”在某个具体的线程中执行任务”的功能。二、Android消息机制在更新UI上的应用 Android只能在主线程中访问UI,因为Android的UI控件不是线程安全的。为什么不加入锁机制呢?因为那样会降低UI访问效率。 可是有时候要进行耗时操作,主线程又不能进行耗时操作,不然会ANR。这时候

2018-01-30 10:17:01 250

转载 为Android安装BusyBox —— 完整的bash shell

http://blog.csdn.net/u010164190/article/details/70169678

2018-01-29 13:31:09 1179

原创 Android中的UID和PID

Pid是进程ID,Uid是用户ID,只是Android和计算机不一样,计算机每个用户都具有一个Uid,哪个用户start的程序,这个程序的Uid就是那个用户,而Android中每个程序都有一个Uid,默认情况下,Android会给每个程序分配一个普通级别互不相同的 Uid,如果用互相调用,只能是Uid相同才行,这就使得共享数据具有了一定安全性,每个软件之间是不能随意获得数据的。而同一个applica

2018-01-26 13:41:10 573

原创 第二章 IPC机制(新)

一、进程和线程、Android进程间最具特色的通信方式 进程和线程都是cpu执行的时间片段,只是颗粒度大小不同。进程需要切换上下文,线程不用。 不同的任务可以比作进程;可是完成一个任务需要从不同的方面同时进行,这就是线程。 Android基于Linux内核,可是它的进程间通信并不能完全继承自Linux。相反,它有自己的进程间通信方式。最有特色的就是Binder。二、Android为什么要有多进

2018-01-25 10:53:34 285

原创 记录一些综合认识

RAM 是随机存取存储器,它的特点是易挥发性,即掉电失忆。 ROM 通常指固化存储器(一次写入,反复读取),它的特点与RAM 相反。ROM又分一次性固化、光擦除和电擦除重写两种类型 手机ROM指的是存放手机固件代码的存储器(常说的刷机也就是指的是重新构建自己想要的ROM),比如手机的操作系统、一些应用程序如游戏等。 手机ROM是储存手机操作系统的地方,一般情况下为了手机系统的安全是不允许被擦

2018-01-23 11:05:23 253

原创 第一章 Activity的生命周期和启动模式

生命周期一、正常情况下的生命周期 1、onCreate()和onDestroy()是配对的,标志着Activity的创建与销毁 onStart()和onStop()是配对的,标志着Activity是否可见 onResume()和onPause()是配对的,标志着Activity是否在前台 2、从A打开B: A:onPause() B:onCreate() B:onStart() B:

2018-01-22 15:59:56 352

原创 Gradle从入门到实战 - Groovy基础(by任玉刚)读后笔记

一、基本语法 1、在Groovy中,通过 def 关键字来声明变量和方法 2、在Groovy中,类型是弱化的,所有的类型都可以动态推断 3、在Groovy中,很多东西都是可以省略的,比如 - 语句后面的分号是可以省略的 - 变量的类型、方法的返回值类型、方法参数类型也是可以省略的 - 方法调用时,括号也是可以省略的 - 甚至语句中的return都是可以省略的 4、在Groovy中,对

2018-01-16 17:52:05 635

原创 字符串加密,从资源文件、磁盘文件中加载小图

private String hashKeyFromUrl(String url) { String cacheKey; try { MessageDigest digest = MessageDigest.getInstance("MD5"); digest.update(url.getBytes());

2018-01-11 17:40:29 182

原创 消息处理机制

一、为什么有消息机制?主要是为了解决子线程中无法访问UI。为什么android的子线程无法访问UI?因为UI控件是线程不安全的,之所以不给它加入锁机制,是因为会降低UI的访问机制。所以设计为单线程模型处理UI,再引入Handler。通过ThreadLocal来管理不同线程的Looper。二、MessageQueue主要有两个操作:enqueueMessage:往Mess

2018-01-09 17:34:54 745

原创 startActivityForResult()

startActivityForResult(),从名字就能看出来,意思是为了得到结果数据来启动一个Activity。仔细分析一下:为了得到数据,可以有各种途径,比如说通过封装工具类、通过网络等,但这里为什么要通过Activity呢?不难想到,Activity可以和用户交互,得到一些数据,这是其他途径所做不到的。由此,startActivityForResult()的使用场景就清晰了。一、使用场景

2017-12-09 03:06:21 292

原创 “应用自动启动”和“关联启动”权限

1、无法调用服务端的service,不能唤起服务端进程,是因为服务端应用的“关联启动”权限没手动打开。2、貌似“关联启动”这个权限功能是6.0以后部分品牌手机有的。3、调用activity不需要“关联启动”权限,service需要,其他两个没试。4、新装一个应用时,你打开它的权限是没有“关联启动“这一项的,应该是默认不可以关联启动。当这个应用被其他应用关联启动一次以后(启动失败了),此时你再打开权限

2017-12-06 18:51:13 32103

原创 gradle插件升级

gradle插件,即Android Plugin for Gradle构建项目时,会先从本地仓库寻找gradle插件,本地没有再到maven仓库里拉取。1、本地找不到 gradle插件在本地仓库有两个位置: C:\Users\用户名.gradle\caches\modules-2\files-2.1\com.android.tools.build D:\android-studio\gradl

2017-12-06 10:59:34 2432

原创 aidl

不同项目用aidl时要注意这四点:1、service的启动方式:不能用隐式启动,会报错。应该这样: 2、实体类要放在java包下,而不能放在aidl包下,不然会报找不到这个类的错误。(其实同时aidl文件也不能放在java包下面,否则系统不能自动帮助我们生成java文件) 3、客户端和服务端的“和aidl相关的文件”的包名要一致,可以是任意包名。 比如这里:3个aidl文件和1个实体类,它

2017-12-05 16:15:18 316

原创 任务栈

点桌面图标; 按后退键; 按Home键; 前台任务,后台任务; 四种启动模式会让该activity处于哪个任务; TaskAffinity属性。应用:应用名,即是包名; 进程:进程名,默认是包名,或者是手动指定的process属性;PID;UID;TID; 任务:任务名,默认是包名,或者是手动指定的affinity属性;TaskID;1、当任务处于后台状态的时候,返回栈中所有的Acti

2017-12-03 22:45:24 437

原创 自定义permission

1、Android不允许两个不同的应用定义一个相同名字的权限(除非这两个应用拥有相同的签名),所以在命名的时候,需要注意哦。2、permisssion限制只针对跨进程的情况,如果是在一个应用内调用这个权限设置是没有作用的。3、参考:http://blog.csdn.net/u014088294/article/details/51924223

2017-12-01 19:13:23 254

原创 第二章 IPC机制

1、在使用文件共享时,无法创建文件路径,原因是android7.0 SDcard 无法创建文件夹。这是因为android6.0的权限(Android运行时权限),需要手动开启应用权限,或者设置动态权限。解决方法参考: http://blog.csdn.net/yewuqingxuan/article/details/751273432、messenger跨进程通信时无法在service的进程中打出

2017-11-29 11:29:18 277

原创 adb shell根据包名查进程、杀进程

1、根据包名查看进程命令adb shell ps|grep com.ott.android.TMC(包名) 直接输入会提示grep不是内部命令或外部命令解决办法,解决办法加上引号adb shell “ps|grep com.ott.android.TMC(包名)” 2、根据包名直接杀掉进程命令 adb shell am force-stop com.ott.android.TMC(包名)

2017-11-27 16:54:17 31943 2

转载 Android Gradle和Gradle插件区别

转自: http://blog.csdn.net/jinrall/article/details/53220761

2017-11-23 17:51:40 307

转载 windows查看端口占用以及关闭相应的进程

开始–运行–cmd 进入命令提示符 输入netstat -ano 即可看到所有连接的PID 之后在任务管理器中找到这个PID所对应的程序如果任务管理器中没有PID这一项,可以在任务管理器中选”查看”-“选择列” 经常,我们在启动应用的时候发现系统需要的端口被别的程序占用,如何知道谁占有了我们需要的端口,很多人都比较头疼,下面就介绍一种非常简单的方法,希望对大家有用 假如我们需要确定谁占用了

2017-11-22 19:55:55 205

原创 RN入门---环境搭建和第一个RN项目

一、RN环境的搭建,参照RN中文网,有以下概念Chocolatey:Chocolatey是一个Windows上的包管理器,用于安装windows程序 Python 2: NodeJS:NodeJS是基于javascript的服务端。将本地的js文件(RN里,将返回的js文件通过依赖React翻译成React格式,再通过依赖react-native,翻译为react-nat

2017-11-22 19:50:08 13451

原创 进程(即虚拟机)、应用(包括application和各种组件)、task和back stack

存在的进程,依据进程的优先级被系统管理着; activity,当前虚拟机使用的内存超过最大内存的3/4,GC就会开始自动回收activity。一个虚拟机只能跑一个进程,一个进程里可以跑多个应用,一个应用也可以跑在多个进程中,这就是他们的关系。 一个应用开启多进程会遇到以下几个问题: 1)Application的多次重建。 2)静态成员的失效。 3)文件共享问题。 4)断点调试问题。And

2017-08-25 16:08:45 1615

转载 PorterDuffXferMode的几个坑

转自:http://blog.csdn.net/u010335298/article/details/51983420

2017-08-22 16:22:58 295

原创 svn项目被锁住了,不能操作怎么办

设置显示隐藏文件夹,此时在你的svn项目文件夹中就会出现一个名为“.svn”的隐藏文件夹。 打开后有一个”wc.db”的数据库文件 下载“sqlite3”放入这个目录 在这个目录下进入cmd,执行如下命令: 完毕。

2017-08-14 16:41:37 3471

转载 Android Studio 常用功能介绍(包括gradle)

转自:http://ask.android-studio.org/?/article/23

2017-08-11 17:38:47 625 2

转载 Android中aar和jar文件的认识

转自:http://blog.csdn.net/zxw136511485/article/details/52777286在Android开发中,我们总是会引入其他第三方的库或者资源等,有时候是添加一个jar文件,有时候添加一个aar文件,那么这两种类型的文件有什么区别吗?详情请看下文。一、描述。 1. *.jar,JAR 文件就是 Java Archive File,顾名思意,它的应用是与

2017-08-11 17:16:07 269

原创 SVN版本控制下文件的颜色

绿色,已经加入控制暂未提交 红色,未加入版本控制 蓝色,加入,已提交,有改动 白色,加入,已提交,无改动

2017-08-11 17:03:49 1426

原创 更改dialog样式activity在屏幕中显示的位置

/** * 更改dialog样式activity在屏幕中显示的位置 */ @Override public void onAttachedToWindow() { super.onAttachedToWindow(); //即设定DecorView在PhoneWindow里的位置 View view = getWin

2017-08-01 16:09:41 1869

原创 二维码变形问题

可能有两个原因: 1、屏幕旋转导致的,增加以下代码即可 Point screenResolutionForCamera = new Point(); screenResolutionForCamera.x = screenResolution.x; screenResolutionForCamera.y = screenResolution.y;

2017-07-26 11:22:58 4492

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除