对Activity的DecorView的包装(二)
看了下公司的系统代码对于根布局decor_layout.xml的修改, 有所获.
前些时候才开始做系统开发的时候, 总想改改系统的源码, 至于原因: 人总是想装装, 在踩过几个别人修改的坑后, 还是觉得在不改源码的基础上, 尽量纳源码为自己所用还是挺好的.
代码如下:
1 ...[2018/10/9]
Android系统修改之Notification布局修改(一)Android系统修改之Notification布局修改(一)
源码基于Android4.4
相关布局文件的位置:
framework base/core/res目录下:
1. notification_template_base.xml
2. notification_template_big_base.xml
3. not...[2018/10/9]
libstdc++适配Xcode10与iOS12
编译报错
当你开心得升级完新 macOS,以及新 XCode,准备体验了一把 Dark Mode 编程模式,开心的打开自己的老项目的时候,发现编译不通过了╮(╯_╰)╭
如果你的工程中如果依赖 libstdc++,无论是你本身的功能用 C++ 跨平台编写,还是你引入了某个 SDK...[2018/10/9]
如何正确使用Espresso来测试你的Android程序如何正确使用Espresso来测试你的Android程序
UI测试在Android平台上一直都是一个令人头痛的事情, 由于大家平时用的很少, 加之很多文档的缺失, 如果很多东西从头摸索,势必踩坑无数. 自Android24正式淘汰掉了InstrumentationTestCase(位于android.test包), 推出Espre o(位于android...[2018/10/8]
Jenkins报错'Gradle build daemon disappeared unexpectedly'的问题解决
在将项目集成到 Jenkins 后,经常会出现不稳定的构建,Jenkins 控制台输出的错误信息为:Gradle build daemon disappeared unexpectedly (it may have been killed or may have crashed)。
经过调查...[2018/10/8]
Flutter 不一样的跨平台解决方案Flutter 不一样的跨平台解决方案
本文主要介绍Flutter相关的东西,包括Fuchsia、Dart、Flutter特性、安装以及整体架构等内容。
1. 简介
Flutter作为谷歌最近推出的跨平台开发框架,一经推出便吸引了不少注意。关于Flutter,目前我们知道它是一个跨平台开发框架。但是它本身并不止于此,例如Fuchs...[2018/10/8]
喜闻乐见-Android简介喜闻乐见-Android简介
本文主要是对Android系统做一个简介,包括其架构、启动流程、沙箱机制、APK、Darlvik以及ART。
1. 架构
Android是基于Linux内核开发出的一个移动操作系统,系统结构大致可以分为五层。自顶向下分别是系统应用程序、Java API框架、系统运行库、硬件抽象层以及Li...[2018/10/8]
喜闻乐见-Android应用的生命周期
本文主要讲述了App的启动流程、Application的生命周期以及进程的回收机制。
在绝大多数情况下,每一个Android应用都在自己的Linux进程中运行。当需要运行某些代码时,进程就会被创建。进程将保持运行直到不再需要,当其他应用有需要的时候,系统会释放该进程的内存。
一个不常见但很...[2018/10/8]
喜闻乐见-Activity生命周期
Activity的生命周期,对于Android开发者来说,再熟悉不过了。但是我们接触到的资料,绝大部分都只是谈了一些表面上的东西,例如各个回调的顺序等等。本文试图换个角度来讲解,也希望对各位读者有所帮助。
1. 生命周期
首先附上一张大家都熟悉的不能再熟悉的图了
对于各个流程的回调,想...[2018/10/8]
喜闻乐见-Android LaunchMode喜闻乐见-Android LaunchMode
launchMode,通俗点说,就是定义了Activity应该如何被launch的。那么这几种模式的区别以及应用场景,会有何不同呢?谷歌是基于什么原因设计这几种模式的呢?这几种模式背后的工作原理是什么呢?
1. 任务和返回栈
在讲解launchMode之前,先说说任务(Task)和返回栈(B...[2018/10/8]
现有项目中集成Flutter现有项目中集成Flutter
本文列举了项目开发使用Flutter会遇到的问题,以及如何使用Flutter module在现有项目中集成Flutter,并对其原理进行了分析。
最近在做的一个商业项目,完全的使用Flutter编写的,这其中的坑,只有写过的人才能体会到。
1. 纯Flutter项目的问题
在论述纯Flut...[2018/10/8]
AS插件-GsonFormat
支持 field 类型的修改.
支持快捷键打开 GsonFormat ,默认为 option+s(mac), alt+s(win)
支持 field 名称的修改.
支持添加 field 前缀.
支持多种转换库 (Gson,Jackjson,FastJ...[2018/10/8]
Flutter Plugin开发流程
这篇文章主要介绍了Flutter Plugin开发流程,包括如何利用Android Studio开发以及发布等。
本文主要给大家介绍如何开发Flutter Plugin中Android的部分。有关Flutter以及Flutter Plugin的概念,感兴趣的可以从官网查看相关资料。
1. 简...[2018/10/8]
Kotlin入门(21)活动页面的跳转处理
Activity的活动页面跳转是App最常用的功能之一,在前几章的demo源码中便多次见到了,常常是点击界面上的某个按钮,然后跳转到与之对应的下一个页面。对于App开发者来说,该功能的实现非常普通,使用Java编码不过以下两行代码而已:
Intent intent = new Inte...[2018/10/8]
[开源应用]-一个Android平台的 IM 应用
这是一个简单的 IM 应用,写这个应用的本意只是想练练手,暂且实现了私聊和群聊功能,后边再根据用户反馈情况再来更新吧~
应用完全是以 MVVM 的思想来实现的,使用的是 Google 的 LiveData + ViewModel 框架,使用的后台服务是由腾讯云通信服务提供的
应用完全开源,觉得...[2018/10/8]
Flutter 布局详解
本文主要介绍了Flutter布局相关的内容,对相关知识点进行了梳理,并从实际例子触发,进一步讲解该如何去进行布局。
1. 简介
在介绍Flutter布局之前,我们得先了解Flutter中的一些布局相关的特性。
1.1 边界约束(box constraints)
box constraint...[2018/10/8]
Flutter 布局(一)- Container详解
本文主要介绍Flutter中非常常见的Container,列举了一些实际例子介绍如何使用。
1. 简介
A convenience widget that combines common painting, positioning, and sizing widgets.
Contai...[2018/10/8]
Flutter 布局(二)- Padding、Align、Center详解
本文主要介绍Flutter布局中的Padding、Align以及Center控件,详细介绍了其布局行为以及使用场景,并对源码进行了分析。
1. Padding
A widget that insets its child by the given padding.
1.1 简介
Pad...[2018/10/8]
Flutter 布局(三)- FittedBox、AspectRatio、ConstrainedBox详解
本文主要介绍Flutter布局中的FittedBox、AspectRatio、ConstrainedBox,详细介绍了其布局行为以及使用场景,并对源码进行了分析。
1. FittedBox
Scales and positions its child within itself accor...[2018/10/8]
Kotlin入门(22)适配器的简单优化
列表视图
为实现各种排列组合类的视图(包括但不限于Spinner、ListView、GridView等等),Android提供了五花八门的适配器用于组装某个规格的数据,常见的适配器有:数组适配器ArrayAdapter、简单适配器SimpleAdapter、基本适配器BaseAdapter、翻页...[2018/10/8]
RxJava2 入门详细笔记RxJava2 入门详细笔记
一、概述
在 RxJava 中,一个实现了 Observer 接口的对象可以订阅一个 Observable 类的实例。订阅者对 Observable 发射的任何数据或数据序列作出响应。这种模式简化了并发操作,因为它不需要阻塞等待 Observable 发射数据,而是创建了一个处于待命状态的观察者哨...[2018/10/8]
Flutter 布局控件完结篇
本文对Flutter的29种布局控件进行了总结分类,讲解一些布局上的优化策略,以及面对具体的布局时,如何去选择控件。
1. 系列文章
Flutter 布局详解
Flutter 布局(一)- Container详解
Flutter 布局(二)- Padding、Align、Center详解
F...[2018/10/8]
App间相互跳转及图片分享
A-app:
Info--URL Types--URL Schemes:A-app(一个标识,允许别的app调用本App)
info.plist 添加白名单:
LSApplicationQueriesSchemes(Array)
B-app(String)
使用
- ...[2018/10/8]
iOS禁止所有输入法表情的方法
本文实例为大家分享了iOS禁止所有输入法表情的具体代码,供大家参考,具体内容如下 - (BOOL)textView:(UITextView *)textView shouldChangeTextInRange:(NSRange)range replaceme...[2018/10/8]
java.lang.NoSuchFieldError异常java.lang.NoSuchFieldError异常
原因就是主项目的xml文件和库项目中的xml文件 命名一样,导致库项目中的xml文件被主项目覆盖,所以库项目就找不到xml中的相关id,就报异常了。
解决方法:修改主项目中的xml文件命名,不要和库项目中的文件名称一样,防止文件冲突。[2018/9/30]
Android Studio 通过一个登录功能介绍SQLite数据库的使用
前言:
SQLite简介:是一款轻型的数据库,是遵守ACID的关系型数据库管理系统,它包含在一个相对小的C库中。它是D.RichardHipp建立的公有领域项目。它的设计目标是嵌入式的,而且目前已经在很多嵌入式产品中使用了它,它占用资源非常...[2018/9/30]
Android Studio列表用法之一:ListView图文列表显示(实例)
前言:
ListView这个列表控件在Android中是最常用的控件之一,几乎在所有的应用程序中都会使用到它。
目前正在做的一个记账本APP中就用到了它,主要是用它来呈现收...[2018/9/30]
iOS中Block循环引用的问题iOS中Block循环引用的问题
说到循环引用问题,想必大家都碰到过吧,比如在使用Block的时候,使用__weakSelf来代替self解决等,但是对于这个,还是有不少可以探索的点,下面我就来说下,希望对大家有所帮助。
是否所有的Block中,使用self都会导致循环引用?
答案是否定的!如下面所示的这种情况
如上,使...[2018/9/30]
iOS之禁止所有输入法的表情
- (BOOL)textView:(UITextView *)textView shouldChangeTextInRange:(NSRange)range replacementText:(NSString *)text {
禁止所有输入法的表情
if ([self isCo...[2018/9/30]
AIDL使用以及原理分析
AIDL使用以及IPC原理分析(进程间通信)
概要
为了大家能够更好的理解android的进程间通信原理,以下将会从以下几个方面讲解跨进程通讯信:
1. 必要了解的概念
2. 为什么要使用aidl进程间通信
3. 可能遇到的问题以及解决办法
4. aidl的使用,通过android提供的a...[2018/9/28]
Android内嵌PDF预览
一、在对应模块的build.gradle文件中加入依赖
dependencies {
implementation ''com.github.barteksc:android-pdf-viewer:3.1.0-beta.1''
}
二、Activity布局Xml...[2018/9/28]
Android dp、dip、dpi、px、sp简介及相关换算,及其应用实例Android dp、dip、dpi、px、sp简介及相关换算,及其应用实例
屏幕分辨率:在x y轴上的像素点数。单位是px,1px=1个像素点。一般以 纵向像素×横向像素 表示,如1920*1080 dpi--------------------------每英寸上的像素点数(斜角的px数目 ÷ 斜角的inch数目),d...[2018/9/28]
Android各版本特性
此篇文章可以利用碎片化时间进行消化和了解,针对Android各个版本特性,并没有把所有列出,只是抽出了比较常用重要的特性作为提示,同时在面试中只要牢记重要的几个点即可,其他特性直接查找官方文档即可。
Android5.0(棒棒糖)
1)运行时机制,采用ART.安装时转换为机器语言,成为真正本...[2018/9/28]
Kotlin入门(20)几种常见的对话框
提醒对话框 手机上的App极大地方便了人们的生活,很多业务只需用户拇指一点即可轻松办理,然而这也带来了一定的风险,因为有时候用户并非真的想这么做,只是不小心点了一下而已,如果App不做任何提示的话,继续吭哧吭哧兀自办完业务,比如转错钱了、误删资料了,往往令用户追悔莫及。所以对于部分关键业务,App...[2018/9/28]
【OC底层】OC对象本质,如 isa, super-class
Objective-C的本质
1、我们编写的Objective-C,底层现实都是C/C++,代码生成步骤如下:
2、在OC中的所有面向对象的实现,都是基于C/C++的数据结构实现的
3、将Objective-C代码转换为C\C++代码
xcru...[2018/9/28]
ADB命令行控制界面开关
以下命令需要root权限:
svc命令
这个脚本在 ystem/bin目录下,这个命令可以用来控制电源管理,wifi开关,数据开关(就是上网流量)
svc power stayon [true|false|usb|ac]
&n...[2018/9/27]
snapkit更新约束崩溃的问题
最近在使用snapkit布局时,竟然发现更新约束会导致崩溃,为什么这样呢?
checkButton.snp.makeConstraints { (make) in
make.left.top.equalToSuperview()
...[2018/9/27]
wepy框架须知
安装脚手架1. 安装构件工具 npm i wepy-cli -g2.创建项目 wepy new 项目名3.实时编译 &nbs...[2018/9/26]
微信小程序之封装http请求
下面将封装http请求服务部分的服务以及引用部分
本服务用于封装请求
返回的是一个promisepromise
var sendRrquest = function (url, method, data, header) {
var promise = new Promise...[2018/9/26]
使用SnapKit遇到的问题
最近在使用snapkit过程中遇到一个问题,在github上搜索之后发现另外一个有趣的问题 问题链接
frameImageContainer.snp.makeConstraints({ (make) in
make.width.equalTo(295).multipliedBy(0....[2018/9/26]
Android Studio 在项目中引用第三方jar包
在Android Studio项目中引用第三方jar包的方法:
步骤:
1、在build.gradle文件中添加如下代码:
备注:要添加在Android作用域下
sourceSets {
main {
...[2018/9/26]
Android Studio 点击两次返回键,退出APP
该功能的实现没有特别复杂,主要在onKeyDown()事件中实现,直接上代码,如下:
1 第一次点击事件发生的时间
2 private long mExitTime;
3
4 /**
5 * 点击两次返回退出app
6 */
7 @Override
8 ...[2018/9/26]
Android gradle插件打印时间戳的方法详解
Android中时间戳的详细解释:
(1).定义:
时间戳就是根据当前系统时间生成的一组随机数字。
(2).作用:
作为对数据唯一性的一种判断依据。避免了重复修改数据所带来的错误!
(3).应用:
(1).在银行account表中建立时间...[2018/9/26]
Android开发教程之如何屏蔽View的重复点击
前言
android 防止重复点击是一个非常常见的需求,每个人都有各自的点击事件的处理习惯,有的喜欢使用匿名内部类,有的activity、fragment、自定义View等继承点击事件然后在onClick()方法中根据id用switch实现各自View的点击事件。
在开发中我们经常需要这样...[2018/9/26]
Android开发笔记之如何正确获取WebView的网页TitleAndroid开发笔记之如何正确获取WebView的网页Title
前言
现在APP中用到H5页面的越来越多,而如何正确获取WebView的网页title是必须要考虑的。
最近做项目的时候,老大让我把之前做的webview打开网页的功能修改一下,说是要动态的获取网页的标题,然后显示在我们自己app的标题栏上,然后我就屁颠屁颠的跑去看webview的源码,看...[2018/9/26]
Swift函数提前返回实例详解
简评: 函数是一个组织在一起语句集合,以执行特定任务。Swift 函数类似于简单 C 函数以及复杂的 Objective C 语言函数。 它使我们能够通过函数调用内部的局部和全局参数值。 像其他任何语言一样 swift 函数也遵循相同的步骤。 函数声明:它告诉编译器有关的函数的名称,返回类型和参数...[2018/9/26]
OC runtime学习笔记之关联对象
前言 Objective-C 不能动态的添加一些属性到对象上,和其他的一些原生支持这点的语言不一样。所以之前你都不得不努力为未来要增加的变量预留好空间。在 Mac OS X 10.6 中,Objective-C 的 Runtime 已经原生的支持这个功能了。 OC runtime 中关联对象的方法...[2018/9/26]
iOS使用WebView生成长截图的第3种解决方案
前言 WebView就是一个内嵌浏览器控件,在iOS中主要有两种WebView:UIWebView和WKWebView,UIWebView是iOS2之后开始使用,WKWebView是在iOS8开始使用,WKWebView将逐步取代笨重的UIWebView。 由于项目需要,新近实现了一个长截图库 ...[2018/9/26]