自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

@甘道夫@的专栏

专注移动技术,也聊聊行业

  • 博客(111)
  • 资源 (1)
  • 收藏
  • 关注

原创 adb shell input 分析(1)

adb shell input的功能adb shell input可以通过adb命令行发送input事件。包含keyevent和text两种。keyevent对于安卓API KeyEvent定义的健值均可支持https://developer.android.com/reference/android/view/KeyEvent健值举例:KEYCODE_0Added i...

2019-12-12 16:53:12 1840

原创 互联网公司的手机梦为什么总是破灭?

最近传出字节跳动(今日头条、抖音母公司)要做手机的消息,同时引起互联网圈和手机圈关注。这也很正常,互联网、手机、如日中天发展迅猛的字节跳动,都是时下热词,这几个词组和在一起,必然成为新闻。虽然仔细了解后,会发现字节跳动收购了锤子以后,做手机似乎也是水到渠成的事情了。字节跳动是一家年轻的公司,互联网行业本身一日千里,且字节跳动形势正好,所以在任何领域发力,都可以理解。但在手机领域的涉足,让人不得...

2019-08-09 15:19:38 507

原创 大公司什么样的新项目更可能成功?

大公司财力雄厚,在某些领域有巨大的优势(这也是成为大公司的必要条件),加之计算机行业瞬息万变,从业者往往有被颠覆的焦虑,所以大公司往往会开设很多创新项目。尤其互联网公司,本身行业的特点就包含试错成本小,成长速度快(如果做对了方向)。对于大公司的局外人,常常会低估大公司的内部创新项目的数量,因为大部分项目其实还没有来得及被绝大多数用户知道,就已经死掉了。如果你是业内人,常常会在同学、前同事的闲聊中发...

2019-08-07 19:03:48 579

原创 关于“公司基因论”的争论,吴军观点没有错

最近吴军对于腾讯的评论,进而引发了关于“公司基因论”的争论。具体可以参看这篇文章:让吴军被骂的“公司基因论”究竟从哪来的?https://mp.weixin.qq.com/s/7CKbanVWA3B7JxMVq-vl0A看了一下双方的观点,基本上还是觉得吴军的关于公司基因的论述并无问题。这是吴军原文,可以看到有几个点:(1)论述的对象是成熟的、在某个领域特别成功...

2019-07-19 22:31:00 390

原创 浅谈Android多进程APP的优势

在Android APP开发中,常常会采用多进程的方式。多进程APP当然会带来一些额外的开发成本,例如进程间通信。但收益也是显而易见。浅谈一下Android多进程APP的优势,至少有以下三点:1.享受更多的资源Android系统底层是Linux,每一个进程能够使用的系统资源都是有上限的,例如内存。多进程意味着更多的内存可供使用。如果你需要实现的业务功能需要耗费大量的内存,将一些比较独立且占...

2019-06-27 17:19:30 1090

原创 特斯拉的降价并非马斯克疯了

最近关于特斯拉的降价有很多负面的评论,譬如:降价会降低特斯拉的品牌价值,对比案例就是苹果;降价会拉低特斯拉的利润率,作为一个上市公司来说,可能直接影响到财报,股价也跟着跌了。当然,对于比亚迪和蔚来为代表的的各类寄希望于电动车时代弯道超车的中国电动车品牌,这个消息绝对是一枚“重磅炸弹”。中国制造以目前来看,最重要的优势仍然是性价比,国产以后甚至有望售价低于30万的特斯拉Model3,以豪华品牌来看,...

2019-03-07 11:08:23 312

原创 如何解决WebView打开网页不能自动播放声音的问题?

Android在Api Level 17增加了一个WebView的配置:WebSettings.getMediaPlaybackRequiresUserGesture();WebSettings.setMediaPlaybackRequiresUserGesture(boolean);详见android dev文档:https://developer.android.com/ref...

2018-11-02 20:09:36 6445

原创 如何避免WebView在Activity finish之后仍然有声音?

Android App中,如果一个Activity使用了WebView,并且加载的网页有声音,有些机型会出现Activity finish之后,仍然有声音。这是Android系统或厂商ROM本身的一个问题,作为App方只能想办法绕过去。有一种办法,手动调用一次WebView.destroy(),可以生效。不过需要注意,在低版本Android(4.4.4)上,会引起底层crash,解决方法是需要...

2018-06-21 20:19:03 1054

原创 Android倒计时工具CountDownTimer的用法及原理(二)

实现原理拿CountDownTimer的源代码看一下,并不复杂,基本上是对Handler的封装,使用send/post delay。这套机制仍然首先于Handler的原理,所以在精度上也不能够保证很精确,只能保证不会早于预期执行。详见我另外一篇介绍Handler send/post delay的文章: Handler sendMessageDelayed()/postDelayed()机制详解。源...

2018-02-26 17:09:53 730

原创 Android倒计时工具CountDownTimer的用法及原理(一)

CountDownTimer是Android官方SDK提供的一个倒计时工具,其仍然是基于Handler send/post delay,可视作在倒计时这个特定的使用场景下对于Handler的一种封装。用法CountDownTimer使用起来是很方便的。CountDownTimer是一个抽象类,通过构造方法创建实例,并且实现两个抽象方法即可。start()方法为启动倒计时。CountDownTime...

2018-02-24 14:08:09 4597

原创 测试volatile变量的读写性能

volatile变量与非volatile变量的区别在于,volatile变量每次读都需要去主内存读取最新的值,每次写也需要写回到主内存;非volatile变量允许在缓存中读写以加快计算速度。

2017-12-29 16:12:02 3419

原创 在Android中使用SQLite的附加数据库(Attach DB)

本文简单介绍在Android APP开发中如何使用附加数据库

2017-11-17 14:01:51 3039

原创 SQLite实用武器库(4)附加数据库(Attach DB)

对于连接到数据库A,同时需要使用数据库B中的数据的情况,SQLite提供了一种将外部数据库附加到当前数据库连接的机制——Attach DB。

2017-11-17 10:16:57 9444

原创 Android ContentProvider的线程安全(二)

2.SQLiteDatabase/SQLiteOpenHelper线程安全

2017-10-30 10:42:24 2712 2

原创 Android ContentProvider的线程安全(一)

本文集中讨论一下Android基于ContentProvider的数据库体系的线程安全问题。

2017-10-27 11:24:37 6059 1

原创 SQL保留字符的处理(like,%,_) -Android下Java层的处理

上一篇从SQL的角度看了一下like保留字符和转义字符的解决方法。在Android平台下,一般是在Java层根据业务逻辑拼装SQL语句。所以需要对于like参数做转义字符的替换,然后再将后缀escape代码段拼接上去。

2017-10-24 17:45:41 640

原创 SQL保留字符的处理(like,%,_)

SQL有两个与LIKE相关的保留字符:% 通配符,表示一个或多个任意字符_ 通配符,标识一个任意字符

2017-10-23 11:14:31 3008

原创 String.replace()和String.replaceAll()性能对比

Java中有些常用的API其实值得仔细研究一下,比如String.replace()和String.replaceAll()。

2017-10-20 15:46:36 15781 3

原创 ThreadLocal原理与应用详解(2)

2.ThreadLocal实现原理

2017-09-22 14:30:14 396

原创 从toString()/fromString()角度看JSON(1)

JSON是极常用的一种数据结构,跨语言,且可以与String非常友好地互相转化,尤其在客户端与服务器的http接口通讯中广泛使用。本文从JSON与String相互转化的角度介绍一下Android下JSON的源代码。

2017-09-07 17:19:24 740

原创 ThreadLocal原理与应用详解(1)

本文介绍一下Android中(其实也就是Java中)线程本地变量的相关知识和使用方法。

2017-08-29 11:23:34 433

原创 Java/Android合法完整类名正则表达式

一个合法完整类名由“一个合法包名”+“.”+“一个合法Java类名”构成。

2017-08-23 10:20:34 4408 1

原创 Android“时区”的那些事儿(1)

android支持多时区。那么就引出一个问题,在切换时区的时候(随网络自动切换或者手动切换,同时不手动改变手机时间),这个时间戳的值是否是不受影响地持续自增?时区变化会导致当前系统时间随时差而变,这个变化是如何实现的?

2017-08-14 16:53:32 1916

原创 View.postDelayed()/post() 原理(2)

1.2 post到自身的一个runnable队列中

2017-08-09 10:58:32 883

原创 View.postDelayed()/post() 原理(1)

View.postDelayed()/post()。Android官方文档介绍这类API是向UI线程发消息,Runnable执行在UI线程中。View.postDelayed()/post()在 框架层的实现原理。

2017-08-08 17:09:23 2690

原创 Android切词工具——BreakIterator(3)

5.ICU BreakIterator实现原理简要分析

2017-08-04 17:50:35 1503

原创 LOCAL_PRIVILEGED_MODULE 详解(5)

3.权限管理作用

2017-07-31 15:00:57 2066

原创 LOCAL_PRIVILEGED_MODULE 详解(4)

2.3 packages.xml中的privateFlags字段

2017-07-27 20:45:41 2215

原创 LOCAL_PRIVILEGED_MODULE 详解(3)

2.2 ApplicationInfo中的 privateFlags 和 PRIVATE_FLAG_PRIVILEGED

2017-07-20 19:32:20 9694

原创 LOCAL_PRIVILEGED_MODULE 详解(2)

2.安装时作用在介绍LOCAL_PRIVILEGED_MODULE在安装时的作用之前,先介绍几个关键的准备知识

2017-07-17 09:14:13 2796

原创 LOCAL_PRIVILEGED_MODULE 详解(1)

LOCAL_PRIVILEGED_MODULE 是Android ROM编译时的一个变量,其与编译、安装、权限管理等几个方面都有关系。本文整理一下与LOCAL_PRIVILEGED_MODULE有关的知识。

2017-07-14 16:31:00 18202

原创 Android切词工具——BreakIterator(2)

4.性能怎么样?

2017-07-10 15:36:08 958 1

原创 Android切词工具——BreakIterator(1)

本文介绍一下Android官方提供的切词工具BreakIterator。

2017-07-03 10:35:11 1952

原创 小米手机如何使用Android Monitor?

Android Monitor 是Android Studio的重要工具,可以用来查看进程的内存、CPU等使用情况。本文简要记录一下如何在小米手机上使用Android Monitor。

2017-06-15 14:43:44 3155

原创 打点利器——ActivityLifecycleCallbacks

ActivityLifecycleCallbacks是一个定义在Application类中的接口,API level 14。这个接口可以监控App进程中所有的Activity,在生命周期收到回调

2017-06-10 14:11:11 1168

原创 Android DeepLink原理与应用(2)

3.Android框架层如何实现DeepLink?上一篇提到Android使用DeepLink跳转有两种方式:Intent跳转、WebView网页跳转。这篇研究一下Android框架如何实现DeepLink。以下Android源代码分析版本为Android7.1。 (1)Intent跳转 这其实是一个Intent filter + start Activity的过程,使用的Intent C

2017-06-07 19:37:18 2043

原创 Android DeepLink原理与应用(1)

1.什么是DeepLink?他有什么用?2.怎样使用DeepLink?

2017-06-06 10:44:43 1699

原创 微信能一统天下吗?

微信越来越火,火到硅谷的社交产品都开始抄微信了,中国it从业者多年来被硅谷压抑的自尊仿佛终于昭雪了。随之而来,腾讯的市值越来越高。腾讯和阿里你追我赶,屡创中国科技公司的市值巅峰记录。与美国那些真正的科技巨头之间的差距正在缩小。微信似乎野心越来越大了。最近网上爆出的新版微信,有个搞笑的图,意思是微信“发现”中的入口要干倒几家巨头、准巨头。我觉得有点扯淡。微信固然强

2017-05-26 17:43:10 895

原创 SQLite实用武器库(3)利用headers命令在命令行中显示列信息

对于表的信息,我们可以通过.schema命令来查看。但这样仍然不方便对应着列信息来看数据,尤其是实际工程中的数据库表往往有几十个列。可以使用headers命令来开启列信息显示。

2017-05-25 10:02:26 2139

原创 SQLite实用武器库(2)利用import命令导入导出数据到CSV文件

(1)什么是csv文件?CSV,即Comma-Separated Values,意思是逗号分隔值,或字符分隔值。.csv文件是一种将表数据借助字符分隔的方式存储成文本的文件格式。譬如,可以在excel中另存为csv文件。我们先来试一个,创建一个excel文件,内容如下:

2017-05-19 18:30:04 3392

编写安全的代码Writing Secure Code / Michael Howard, David LeBlanc

编写安全的代码编写安全的代码编写安全的代码编写安全的代码编写安全的代码编写安全的代码编写安全的代码编写安全的代码编写安全的代码编写安全的代码编写安全的代码编写安全的代码编写安全的代码编写安全的代码编写安全的代码编写安全的代码编写安全的代码编写安全的代码编写安全的代码编写安全的代码编写安全的代码

2009-07-16

空空如也

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

TA关注的人

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