
小白Android开发笔记
风行南方
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
Android广播的学习和使用
1.引子最近开发碰到一个需求,客户的设备是自助售货机,他们要求应用静默安装后能够启动,因为派人去现场一个个点击打开应用不现实。作为论坛复制粘贴工程师,碰到这个需求第一时间就是去网上搜索,看看这种需求有什么解决方案,网上文章很多,都说用静态广播,但我复制他们的代码一直没效果,反复排查哪里漏复制了,结果都不是,而是因为,这里先卖个关子,先学习一下广播,不然复制粘贴后还是啥都不懂。2.广播定义Android里的广播,和我们日常里的广播是相似的,都是用于消息的传递,但消息的传递不是一对一的传递,而是原创 2020-05-16 16:50:53 · 462 阅读 · 0 评论 -
Android权限申请的学习实践
1.引子在换到Android手机之前,对Android系统的印象是这系统app的跑马场,app可以任意索取各种权限,随意窃取各种隐私,换手机后才知道Android系统对权限的管理已有很大的改观,索取的每个危险权限都需要提示用户,当然Android只是尽可能提示用户,还是存在着用户不同意就不给用的情况。权限管理的改进给开发者增加了一定工作量,申请危险权限不再是简单的在AndroidManifes...原创 2020-04-18 18:31:27 · 1526 阅读 · 0 评论 -
Activity生命周期的学习和验证
1.引子Activity就像是英文词汇本的Abandon,开篇就能碰到,关于Activity生命周期的博客教程非常多,侧面说明Activity非常重要,其中的Activity的生命周期又是重中之重,面试官非常喜欢拿这个作为考点,因为掌握Activity生命周期对提高应用的健壮性具有很大的帮助。因为只看教程不自己总结实践的话,对其理解总会差点意思,自己动手总结了印象才深刻。2.Activity生...原创 2020-04-11 12:29:03 · 1487 阅读 · 0 评论 -
Android消息机制源码,一个比较直观的简析
1.引子在上一篇Android消息机制基本原理,我们学习了Android消息机制基本原理和使用方法,看到原理比较复杂,什么Handler啊,Looper啊,MessageQueue啊,但使用消息机制却是十多行代码搞定,感觉跟漫威电影一样,前期渲染反叛如何如何逆天,结果被主角轻松用嘴炮打败。当然Android开发和电影不同,电影中我们希望主角打败反派过程复杂一点,这样才有戏剧冲突性,但在Andr...原创 2020-03-28 11:10:03 · 238 阅读 · 0 评论 -
Android消息机制基本原理和使用
在Android开发过程中,我们常常遇到子线程更新UI的需求,例如在子线程进行耗时较长的下载,等下载完成之后,再去更新UI,提示用户下载完成,直接在子线程里更新UI,会得到报错提示:Only the original thread that created a view hierarchy can touch its views。Android老手知道这是怎么回事,并且知道解决方案,新手只能去网...原创 2020-03-20 19:43:16 · 553 阅读 · 1 评论 -
Android持久化存储(4)greenDAO的使用
1.背景在上篇博客介绍SQLite的使用我们能感觉到,虽然Android已经简化了一些SQLite的操作,提供了较为方便的API,但使用中还是需要开发者写一些SQL语言,简单而不简约,有时候只想存储一些简单数据,却需要花费很大力气去开发接口,当然你可以说让另一个程序员去开发数据库操作接口不就行了吗,你老板肯定不同意,这么简单的活还要找别人,本来招你就是想一个人当两个人用,你还奢望一份工作两个...原创 2020-03-13 18:28:05 · 488 阅读 · 0 评论 -
Android持久化存储(3)SQLite数据库的使用
1.什么是SQliteSQLite是由C语言编写的一款轻型数据库,因占用资源小,处理速度快,功能齐全,特别适用于移动设备,最重要的是开源,任何人都可以使用它,许多开源项目(PHP,Python)和当今两大手机操作系统Android和iOS都使用了SQLite,造就了SQLite成为目前世界上最常见的数据库引擎。2.SQLite特点除了占用资源小,处理速度快等优点,SQLite还有自己的特点,...原创 2020-03-07 14:04:06 · 348 阅读 · 0 评论 -
Android持久化存储(2)SharedPreferences使用介绍
1.背景在用文件存储的时候,我们体验到使用内部存储的方便快捷,即既不用申请权限,也不用指定路径,不过还是有不方便的地方,特别是在存储程序配置信息时,程序的配置信息往往是”键-值“的形式,例如是否夜间模式-否语言-中文全屏浏览-否对这些信息的存取,我们需要另外写解析类工具,不过,已有现成的轮子可以使用,那就是Android提供的SharedPreferences类。2.什么是Shar...原创 2020-03-01 11:26:00 · 534 阅读 · 0 评论 -
Android持久化存储(1)文件存储
1.背景APP基本都有一个设置界面,用于进行各种功能设置,例如隐私设置,浏览设置等,用户可不希望当费力做了各种设置之后,关闭APP或者手机关机之后设置就失效了,为避免这种情况发生,开发者只需把设置数据保存到磁盘上即可,这种技术有一个高大上的名称,称为持久化。当然持久化不仅指内存数据写到磁盘上,还包括将磁盘上的数据读取到内存中,是一种让数据在瞬时状态和持久状态转换的机制。Android系统中,持...原创 2020-02-29 22:39:42 · 610 阅读 · 0 评论 -
Android Context初探
1.背景作为一个Android新手,每次看到使用Context作为参数时,都有点焦虑,有时候传this就可以,有时候又不行,不知道为什么可以,为什么又不可以,根本原因还是对Context是一知半解,偏偏很多地方用到Context作为参数,一直一知半解下去不是办法,有必要研究一下Context究竟是什么。2.什么是Context?Context中文意思是上下文,在小学语文课时,我们肯定接触过联...原创 2020-02-24 21:53:30 · 2804 阅读 · 0 评论 -
Android AIDL使用介绍(3) 浅说AIDL背后的Binder
1.背景在前面的博客中,我们已经学会了使用AIDL进行跨进程通信,AIDL的使用比较简单,可实际上跨进程通信是一个相当复杂的过程,例如进程A是怎么找到进程B的,如果有一个进程C冒充进程A,进程B又该如何识别等等问题,而使用AIDL时,完全不用关心这复杂的过程,开发者只需关注业务逻辑即可,有句话说,哪有什么岁月静好,只不过有人替我们负重前行,AIDL的背后肯定有机制帮我们完成了这些进程间通讯的复杂...原创 2020-02-23 14:19:53 · 1567 阅读 · 0 评论 -
Android AIDL使用介绍(2)自定义数据类型的传递
1.背景默认情况下,AIDL只支持下列数据类型:Java八种基础数据类型(如 int、long、char、boolean 等);String字符串;CharSequence字符序列;List列表,List中的所有元素须是前面提到的数据类型,或者是Parcelable类型(这也是本文准备讲解的);Map,Map 中的所有元素必须是以上列表中支持的数据类型,或者您所声明的由 AIDL 生...原创 2020-02-19 12:26:57 · 2297 阅读 · 3 评论 -
Android AIDL使用介绍(1)基本使用
1.什么是AIDLAIDL全称是Android Interface Definition Language,中文译为Android接口定义语言,AIDL的提出是为了解决进程间通讯,我们知道,在Android系统中,每个进程在内存中是相互独立的,类似一个个独立王国,一个进程通常情况下无法访问其他进程的内存,但进程之间不是老死不相往来的状态,他们之间有许多数据交互的需求,为此提出了AIDL,通过AI...原创 2020-02-16 22:26:04 · 2939 阅读 · 0 评论 -
Android Service介绍
背景先从日常用户体验说起,用过苹果的iOS系统都知道,凡是音频播放,在下滑菜单都能看到是哪个应用在播放,音频的标题,用户还可以直接在下滑菜单操作,而安卓手机则不然,因为Android系统使用本文介绍的Service进行后台音乐播放,而Service不提供和用户交互接口,因此在安卓手机上,当用户打开音乐程序并后台播放音乐,想关闭音乐只有再打开该播放音乐程序或者直接杀死所有程序才能关闭音乐,如果用户...原创 2020-02-12 23:01:53 · 440 阅读 · 0 评论 -
Android回调的简单理解
1.什么是回调回调的定义是在A类中定义了一个方法,这个方法中用到了一个接口和该接口中的抽象方法,但是抽象方法没有具体的实现,需要B类去实现,B类实现该方法后,它本身不会去调用该方法,而是传递给A类,供A类去调用,这种机制就称为回调,这个定义比较正式,但看起来太绕了,一会A类一会B类,把人绕晕了。使用日常生活中的例子来理解一下,回调英文单词是Callback,直译为回呼或者回电话,那就用跟电话有...原创 2020-01-18 21:56:48 · 2330 阅读 · 1 评论 -
Android JNI开发流程介绍
1.什么是JNIJNI全称是Java Native Interface,中文称为Java本地接口。JNI是JAVA语言和C/C++语言沟通的协议,通过JNI,Java代码可以调用C、C++等语言写的代码,或者反过来C、C++等语言代码通过JNI调用Java 写的代码。为什么使用JNI?我们知道,Java语言的特性是一次编写,到处运行,跨平台是Java的优点,但有得就有失,跨平台的特性导致了J...原创 2020-01-12 21:50:12 · 1182 阅读 · 0 评论