4 吴小龙同學

尚未进行身份认证

我要认证

微信公众号:吴小龙同学,个人博客:http://wuxiaolong.me/

等级
TA的排名 14w+

Android Systrace 基础知识 - SurfaceFlinger 解读

转载:https://www.androidperformance.com/2020/02/14/Android-Systrace-SurfaceFlinger/正文这里直接上官方对于 SurfaceFlinger 的定义大多数应用在屏幕上一次显示三个层:屏幕顶部的状态栏、底部或侧面的导航栏以及应用界面。有些应用会拥有更多或更少的层(例如,默认主屏幕应用有一个单独的壁纸层,而全屏游戏可能会隐藏状态栏)。每个层都可以单独更新。状态栏和导航栏由系统进程渲染,而应用层由应用渲染,两者之间不进行协调。设备

2020-09-16 11:49:41

Android Systrace 基础知识 - Triple Buffer 解读

怎么定义掉帧?Systrace 中可以看到应用的掉帧情况,我们经常看到说主线程超过 16.6 ms 就会掉帧,其实不然,这和我们这一篇文章讲到的 Triple Buffer 和一定的关系,一般来说,Systrace 中我们从 App 端和 SurfaceFlinger 端一起来判断掉帧情况

2020-03-22 21:39:51

是的,GitHub APP 终于上线了

是的,全球最大程序员社交网站的 App 今天正式上线了,早在 GitHub 2019 开发者大会说要出的客户端,那会儿还需要申请。兴致勃勃去申请了,然后就是等,这一等就是四五月,黄花菜都凉了,今天终于等到了。iOS 下载:https://apps.apple.com/us/app/github/id1477376905Android 下载:https://play.google.com/s...

2020-03-22 21:34:05

Google Flutter Clock 大赛优秀项目推荐

Flutter 在 Google 加持下,如今可以作为跨平台首选了。早在 Flutter 刚刚出现强势苗头,我作为第一批体验了一把,《Flutter 初尝:从 Java 无缝过渡》,不过也仅停留在体验,没再深入。去年年底 Google 举办了 Flutter Clock 竞赛,邀请全球开发者使用 Flutter 开发漂亮的时钟 UI,看完比赛结果,感慨 Flutter 现在已经可以做出这么的漂...

2020-03-17 23:38:58

GitHub 上这几个沙雕项目,够我玩几天

在家里都憋坏了吧?每天睡了吃吃了睡,该找点事做做了,今天推荐几个好(沙)玩(雕)的开源项目,好在家打发时间。91 吴先生一个在线的 Por*Hub 风格 Logo 生成工具 Logoly.Pro ,可以帮助你快速生成类似 Por*Hub 风格的 Logo,感觉好骚。效果示例如何使用打开 Logoly 网站:https://logoly.pro/;编辑框中的文本;根据需要更改颜色和...

2020-01-31 16:56:56

神奇的 new Exception()

先看下一段代码:public class MainActivity extends AppCompatActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentVi...

2020-01-01 23:24:51

Android 挖孔屏适配

1时间过去了一年多了,左小白已经上班了,尤记得去年面试的窘迫样,《漫画:面向 API 开发》、《漫画:越挫越勇》,在面试中各种被刷,各种被怼,还好最后找到了一家还不错的公司,先安心老实上班。这天眼看还有 5 分钟就要迟到了,急忙往公司赶,准备上楼时看到一位高挑妹纸疾风而过,好漂亮啊,小白愣住了,这不就是小白心中的女神啊,这是哪个公司啊,小白心想。妈妈呀,要迟到了,电梯怎么还不来,爬楼吧,最后...

2019-08-20 19:09:45

Android 装逼技术之暗码启动应用

什么是暗码?在拨号盘中输入*#*#<code>#*#*后,APP 可以监控到这些输入,然后做相应的动作,比如启动应用,是不是有点骚。下面看下这个骚操作是如何实现的。效果预览源码DialtactsActivity#showDialpadFragmentDialtactsActivity 中有个 showDialpadFragment 方法,用来加载显示拨号盘,因此入口就从 ...

2019-07-15 10:36:24

Android Studio 导入 AOSP 源码

有了 AOSP 源码,接下来就是如何看了,可以直接文本看,可以用 Source Insight,我当然选择 Android Studio,Android Studio 是我熟悉且十分强大的工具。问题来了,如何将 AOSP 源码导入 Android Studio?安装 Java虚拟机新装的 Ubutun 一开始是没有 Java 的,需要先安装,输入命令java,报以下错误:Command '...

2019-02-26 22:39:11

AOSP 源码整编单编

《AOSP 源码下载》完成后,就可以开编了。整编整编,顾名思义就是编译整个 Android 源码,最终 out 目录会生成几个重要的镜像文件,其中有 system.img、userdata.img、ramdisk.img 等,这些是可以刷机的。初始化编译环境项目目录,打开终端,输入命令:source build/envsetup.sh选择编译目标命令:lunch输出:You...

2019-01-02 19:12:36

AOSP 源码下载

网上关于这块大部分教程都是无效的,因为墙的缘故,无法使用官方提供的下载链接,我这里使用了清华大学的镜像,是能够顺利将 AOSP 下载下来。如果你还没有安装 Ubuntu,请看《VirtualBox 安装 Ubuntu》。下载 repoRepo 是一款工具,可让您在 Android 环境中更轻松地使用 Git,首先需要安装 Git:sudo apt-get install git创建 bi...

2018-12-26 21:36:30

Android 从 Web 唤起 APP

前言 知乎在手机浏览器打开,会有个 App 内打开的按钮,点击直接打开且跳转到该详情页,是不是有点神奇,是如何做到的呢?效果预览Uri Scheme配置 intent-filterAndroidManifest.xml<activity android:name=".MainActivity"> <!-- 需要添加下面的int...

2018-04-07 22:17:46

Python 爬虫实战(二):使用 requests-html

Python 爬虫实战(一):使用 requests 和 BeautifulSoup,我们使用了 requests 做网络请求,拿到网页数据再用 BeautifulSoup 解析,就在前不久,requests 作者 kennethreitz 出了一个新库 requests-html,Pythonic HTML Parsing for Humans™,它可以用于解析 HTML 文档的。request...

2018-03-14 20:56:48

Flutter 初尝:从 Java 无缝过渡

准备阶段下载 Flutter SDK新建 Flutter 文件夹,克隆 Flutter SDK:git clone -b beta https://github.com/flutter/flutter.git配置 Flutter 环境我是 Mac 系统,Flutter SDK 下载完后的路径:Users/wuxiaolong/Flutter/flutter/ 。...

2018-03-09 11:50:17

Android Studio Git 分支实践

新公司有些项目是用的 Git,以前公司都是 svn,为了练手 Git,我个人 APP 用到了,但是仅简单的 git pull/push 的使用,并未用到 Git 精髓,只有当项目中用到,才会紧迫去全面学习,所以说,在项目中进步是最快的。开发场景:远程有主分支 master,提供用户使用的正式的稳定的版本;开发分支 dev,用于日常开发。dev 们可以在本地任意创建自己的 Local ...

2018-02-27 22:17:26

Android 进程间通信

什么鬼!单例居然失效了,一个地方设置值,另个地方居然取不到,这怎么可能?没道理啊!排查半天,发现这两就不在一个进程里,才恍然大悟……什么是进程按照操作系统中的描述:进程一般指一个执行单元,在 PC 和移动设备上指一个程序或者一个应用。为什么要使用多进程我们都知道,系统为 APP 每个进程分配的内存是有限的,如果想获取更多内存分配,可以使用多进程,将一些看不见的服务、...

2018-02-23 21:58:18

Android NDK 入门与实践

NDK 是什么NDK 全称 Native Development Kit,可以让您在 Android 应用中调用 C 或 C++ 代码的工具。NDK 好处1、NDK 可以生成 .so 文件, 方便代码共享;2、增加反编译的难度;3、提高性能。NDK 构建版本说明Android Studio:3.0.1Android Plugin for Gradle...

2017-12-29 14:33:59

Python 爬虫实战(一):使用 requests 和 BeautifulSoup

Python 基础我之前写的《Python 3 极简教程.pdf》,适合有点编程基础的快速入门,通过该系列文章学习,能够独立完成接口的编写,写写小东西没问题。requestsrequests,Python HTTP 请求库,相当于 Android 的 Retrofit,它的功能包括 Keep-Alive 和连接池、Cookie 持久化、内容自动解压、HTTP 代理、SSL 认证、连接超时、Sessi

2017-12-11 14:29:05

GitBook 使用

我想把我的博客总结归纳下,于是找到了 GitBook,多了一个写博客地方,我把它做为博客的备份。花了两三天学习了 GitBook,这里记录下。此教程基于 Mac,Windows 也差不多适用。安装 Node.jsGitBook 是基于 Node.js 的命令行工具,下载安装 Node.js。 检测安装是否成功:$ node -vv6.11.0Gitbook 安

2017-09-06 22:40:02

Android 组件化探索与思考

前言开发中,我习惯性会把一个模块的功能放在一个包下,便于查找,但烦于耦合性太高,后期维护太费劲,因此对项目进行组件化拆分势在必行。组件化好处:便于开发,团队成员只关注自己的开发的小模块,降低耦合性,后期维护方便等。相当于先有很多小组件,各自开发,最后组装,成一个 app。

2017-08-02 09:21:54

查看更多

勋章 我的勋章
  • 签到新秀
    签到新秀
    累计签到获取,不积跬步,无以至千里,继续坚持!
  • 勤写标兵Lv1
    勤写标兵Lv1
    授予每个自然周发布1篇到3篇原创IT博文的用户。本勋章将于次周周三上午根据用户上周的博文发布情况由系统自动颁发。