自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 理解python迭代器和生成器

更多精彩内容,欢迎关注微信公众号: tmac_lover迭代器和生成器是python中一个很重要的语法,使用也很广泛。迭代器举个例子:for i in [1, 2, 3, 4]: print(i)类似这样的代码平时很常见,这里其实就用到了迭代器。可迭代对象要理解迭代器,首先要理解可迭代对象。那什么是可迭代对像呢?python内置的几种数据结构:字符串(str),列表(li...

2019-06-23 09:52:43 670

原创 flask视图函数几种返回类型

更多内容,请关注微信公众号:tmac_lover使用flask编写web应用程序时很重要的一个工作就是路由的视图函数编写。对于刚接触flask的人来说,有时候会觉得很奇怪,为什么路由的视图函数返回值有好几种写法,今天总结一下视图函数返回值的种类,并简要分析一下,这几种返回值的本质,以及它们最终是如何返回给流览器的。flask视图函数返回值的几种形式先列出常见的几种flask视图函数返回值...

2019-06-17 09:17:55 2801

原创 python基础之函数

更多精彩内容,欢迎关注微信公众号:tmac_lover在任何一门编程语言中,函数都是非常重要的一个部分,当然python里也不例外。不过python里函数也会有一些额外的扩充,比如嵌套函数, 闭包和现在很多编程语言都有的lambda表达式。python里正常的函数先来看一下python里正常函数的样子:a = 1def func(num): print(num+a)函数...

2019-06-02 17:13:46 207

原创 getattr. __getattr__, __getattribute__和__get__的区别

更多精彩内容,欢迎关注微信公众号: tmac_lover在阅读很多优秀的python框架代码时,getattr(), __getattr__(), __getattribute__()和__get__()这几个方法都是很常见的,它们都是在什么时候被调用呢,用处又是什么,然后它们之前有哪些关联呢。下面来通过例子分析一下。getattr()和另外三个方法都是魔法函数不同的是,getattr(...

2019-05-31 08:07:08 605

原创 python基础之字典与集合实现原理

更多精彩内容,欢迎关注微信公众号:tmac_lover上一篇介绍python中字典和集中时,提到,字典和集合的优势在于增删改查非常高效,而高效的原因就在于,python中字典和集合这两个数据结构是基于散列表来实现的。散列表也叫哈希表,英文是hashtable。是一种非常高效的基础数据结构,今天我们介绍一下散列表的原理,了解了原理之后,就会很容易理解为什么字典和集合的增删改查如此高效。什么是...

2019-05-28 13:34:28 1362

原创 python基础之dict和set

更多精彩内容,欢迎关注微信公众号:tmac_lover前一篇写了列表(list)和元组(tuple)的区别,python还有另外两个很常用的集合(set)与字典(dict)。它们的优势是高效的查找和增加,删除, 这些操作的时间复杂度均为O(1), 在有些场合,非常适用。概念什么是字典(dict), 在python中,字典是一系列无序的键值对的组合,字典的内容可以增加也可以改变。由于它是使...

2019-05-23 23:41:25 161

原创 python基础之tuple与list比较

更多内容,欢迎关注微信公众号: tmac_lover使用python的过程中,内置数据结构一定是使用频率最多的,比如元组(tuple), 列表(list), 字典(dict),集合(set)。这些数据结构的底层实现都经过了很好的优化,性能都非常的好。当然python提供的这些不同的数据结构,都是各有优势,也各有各自的适合场景。今天先介绍一下元组(tuple)和列表(list)这两种常用的数据...

2019-05-21 12:47:47 1923

原创 python编写代码circular import问题

获取更多内容,欢迎关注公众号:tmac_lover使用python写一个稍微大一点的工程时,经常会遇到循环import,即cicular import的问题。这篇文章会以flask里遇到的一个问题为原型,介绍一下cicular import产生的原因,以及python中使用import文件时,到底python在做什么。1. 一个circular import实例之前遇到一个circul...

2019-05-18 21:39:29 15041 1

原创 Android build system[三]

更多干货,请关注微信公众号: tmac_lover工作中,你一定会遇到需要往ROM中添加jar包的需求,今天介绍一下如何往ROM中添加一个新的jar包(以Android4.4和Android6.0为例)。如果你是一个APP开发者,那么在apk中添加引用第三方的jar包对你来说一定是家常便饭;但是在ROM的开发中,如果需要添加一个公用的jar包,最好的办法就是把jar包放到rom中。1. Andro

2017-11-30 13:06:14 681

原创 packages.xml和packages.list全解析

今天给大家介绍一下Android系统中保存app信息的两个配置文件,packages.xml和packages.list。系统中所有安装的app的基本信息在这里都能体现出来。我这里以Android 6.0为基础来分析,不同的Android版本,可能内容会稍有出入,但是基本上是相同的。1. packages.listpackages.list文件内容相对简单。打开packages.list文件后,我们

2017-11-16 23:05:21 16991 1

原创 Android系统APP安装流程

Android系统安装app原理

2017-11-07 23:12:56 6229

原创 Android中app进程ABI确定过程

更多干货,请关注微信公众号: tmac_lover所谓的ABI全称是application binary interface,是一个机器语言级别的接口,描述的是二进制代码之间的兼容性,也就是说一起工作的二进制文件必须是ABI兼容的。我们都知道Android现在支持的CPU架构大概有:ARMv5,ARMv7 (从2010年起),x86 (从2011年起),MIPS (从2012年起),ARMv8,M

2017-09-30 08:47:42 10411 1

原创 Watchdog死锁实例分析

watchdog死锁实例分析

2017-09-05 20:42:00 2234

原创 Android Build System[二]

更多干货,请关注微信公众号: tmac_lover上一篇文章向大家介绍Android Build System的lunch和mmm的原理,本文继续阐述Android系统编译时property生成原理。希望阅读完本文后大家懂得如何在自己制作的ROM中生成系统默认的property属性。本想将Android系统中property读写的实现机制一起写的,但是我还是坚持自己的观点,每篇文章不能太长 ,因为

2017-09-05 11:11:51 2839

原创 Android Build System[一]

Android Build System系统第一篇

2017-09-05 11:00:46 1075

空空如也

空空如也

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

TA关注的人

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