移动端开发者
能力说明:
了解变量作用域、Java类的结构,能够创建带main方法可执行的java应用,从命令行运行java程序;能够使用Java基本数据类型、运算符和控制结构、数组、循环结构书写和运行简单的Java程序。
阿里云技能认证
详细说明栈是 Last-In-First-Out (后进先出)的线性表。对栈的操作主要有两个:入栈(push)和出栈(pop)。因此它也是一种操作受限的线性表。尽管如此,它在计算机中应用非常广泛,是一种非常基础的数据结构。
LinkedList 是一个双向链表,这是一个基础的数据结构。打开 LinkedList 源码,可以看到它继承于 AbstractSequentialList ,这个是 AbstractList 的子类。同时也实现了 List 、Deque 、Clone、Serializable 接口。
ArrayList 可以说是 Java 程序猿最为常用的一种数据结构了。ArrayList 是通过数组实现的,容量可以自增的线性表。而数组的优点是计算机可以通过下标计算访问地址,所以访问元素的速度是很快的,时间复杂度为O(1);但数组并不擅长插入和删除操作,这些操作的时间复杂度是O(n)。
Retrofit 是 square 公司的另一款广泛流行的网络请求框架。前面的一篇文章《源码分析OKHttp执行过程》已经对 OkHttp 网络请求框架有一个大概的了解。今天同样地对 Retrofit 的源码进行走读,对其底层的实现逻辑做到心中有数。
以下单词是个人平时阅读英文文档时遇到的一些“生”单词,该文档将持续更新,可以持续关注https://github.com/hylinux1024/word-list-for-programmer hierarchy 等级制度;层级;n; coroutines 协同程序;n; backend 后...
ConstraintLayout 相对于 RelativeLayout来说性能更好,布局上也更加灵活。在最新的Google Android开发文档中是推荐使用 ConstraintLayout的,下面来看看具体用法。
0x00 WorkManager的高级用法 在上一文中已经了解到 WorkManager的基本用法之后,今天来看看它的一些高级用法: 链式任务调用 唯一任务序列 传递参数和获取返回值 0x01 链式任务(Chained tasks) WorkManager在执行多个工作任务的时候,可以指定执行顺序。
0x00 简述 WorkManager 是 Android Jetpack中的一部分,它主要是封装了 Android 后台任务的调度逻辑。在前文《Android后台任务处理指南》一文中知道,WorkManager 是高级 API,它实际是封装了JobScheduler, Firebase Jo...
A collection of awesome blockchain articles. Good learning resources about blockchain. 干货集合,入门区块链技术看这里就够了。
在不久之前分享一篇《App 组件化/模块化之路——如何封装网络请求框架》文章介绍了我在项目中封装网络请求框架的思路。开发一个 App 会涉及到很多网络请求 API ,例如登录注册接口、用户信息接口、业务列表请求接口等等。
在实际的项目开发中,经常会用到一些第三方的 SDK ,而使用这些 SDK 基本上都是需要配置 APPKEY 或 APPSECRET 等信息。此外 APP 打包时需要 KEYSTORE , STOREPASSWORD的信息。
Enums often require more than twice as much memory as static constants. You should strictly avoid using enums on Android. 很多开发规范都是不建议在Android中使用枚举的,在Android系统中使用枚举的开销是使用常量的2倍。
Android 组件化/模块化之路——在展示层搭建MVP结构 什么是MVP Model–View–Presenter (MVP) 源于 Model–View–Controller (MVC) 的结构设计模式,它是用于展示层(Presentation)的结构。
面对越来越复杂的 App 需求,Google 官方发布了Android 框架组件库(Android Architecture Components )。为开发者更好的开发 App 提供了非常好的样本。这个框架里的组件是配合 Android 组件生命周期的,所以它能够很好的规避组件生命周期管理的问题。
什么是 Repository 模式 Repository 这个词直译过来仓库、仓储的意思。这个意思其实也能反应出 Repository 模式作用。App 开发中少不了对数据的操作,数据的来源可能有很多种:网络、数据库、文件以及内存中的缓存。
App 组件化/模块化之路——如何封装网络请求框架 在 App 开发中网络请求是每个开发者必备的开发库,也出现了许多优秀开源的网络请求库。例如 okhttp retrofit android-async-http 这些网络请求库很大程度上提高程序猿的编码效率。
App 组件化/模块化开发架构思路 随着业务的发展 App 开发技术也越来越成熟,对开发者来说 App 代码量也迅速地增长到一个数量级。对于如何架构 App 已经每个开发者面临的实际问题。好的架构可以提高开发者的效率,降低维护成本。
你绝对想不到R文件找不到(cannot resolve symbol R)的原因 最近在项目开发中 Android Studio 的 R 文件突然找不到了。IDE 中出现了以下提示 cannot resolve symbol R Clean And Rebuild 一般来说看...
老司机为何能够成为老司机,不是因为开车开得多,而是撸多了… 0x00 使用 startActivityForResult 后在 onActivityResult 中没有正确回调到 Activity.
源码分析——从AIDL的使用开始理解Binder进程间通信的流程 Binder通信是Android系统架构的基础。本文尝试从AIDL的使用开始理解系统的Binder通信。 0x00 一个AIDL的例子 首先我们创建一个项目,写一个RemoteService.java,并定义个AIDL接口IRemoteService.aidl interface IRemoteService { String getText(); } 这时候IDE会自动在目录build/generated/source/aidl/debug/生成IRemoteService.java文件。
源码分析Android Handler是如何实现线程间通信的 Handler作为Android消息通信的基础,它的使用是每一个开发者都必须掌握的。开发者从一开始就被告知必须在主线程中进行UI操作。
随时查阅当前Github上的热门趋势。使用Material Design设计风格,和流行的MVP+Retrofit+RxJava框架。数据抓取自https://github.com/trending Features Material Design设计风格 MVP结构 使用Retro...
1、在project的build.gradle中配置 buildscript { repositories { jcenter() mavenCentral() } dependencies { classpath 'com.
作为一名搬运工,应该懂得避免重复创建轮子。 配置keystore密码信息 通常在app/build.gradle中我们会使用以下方式配置: signingConfigs { release { storeFile file("myapp.
Android开发中,列表估计是最最常使用到的控件之一了。列表相关的交互如下拉刷新,上拉更多,滑动菜单,拖动排序,滑动菜单,sticky header分组,FAB等等都是十分常见的体验。Github中有大量优秀的开源项目,今天就来看看star数超1000的Android列表控件都有哪些。
作为一名Android世界的搬运工,每天搬砖已经够苦够累了,走在坑坑洼洼的道路一不小心就掉坑里了。 SDK常用工具类 Android SDK中本身就拥有很多轮子,熟悉这些轮子,可以提高我们的搬砖效率。
在实际的开发中TextView和EditText是非常基本的控件。这两个控件的使用也是十分简单。而TextView/EditText的功能其实也是非常强大,例如简单的图文就可以使用TextView配合Spannable来实现,以及TextView的drawableTop属性。
现在App的开发已经是非常成熟,涌现了一大批开源的工具。这些项目能够提高我们的搬砖效率。以下是一些在开发中比较常使用的控件和库。 ListView WaveSwipeRefreshLayout 水滴效果的下拉刷新 https://github.
如何在onCreate中获取View的高度和宽度 原文链接:http://mp.weixin.qq.com/s?__biz=MzAwODE1NTI2MQ==&mid=2247483676&idx=1&sn=0ddc1a4dd1decb1749402f70ba340739&chksm=9b72780eac05f118d7a304010b82b63275b1feda82647a19ae3f63672002472315a4ddebaef7#rd 在开发过程中经常需要获取到View的宽和高,可以通过View.getWidth()和View.getHeight()来得到宽高。
原文链接:http://mp.weixin.qq.com/s?__biz=MzAwODE1NTI2MQ==&tempkey=uP3a%2BOgIN7vPbLfJp3BTCl2KabYi1%2FfBUQEkkQD7ixoNgGn4JfrR81AwdwsBof%2FhsiCe4%2B9o0KJQ6...
在《建立apk定时自动打包系统第一篇——Ant多渠道打包并指定打包目录和打包日期》这篇文章中介绍多渠道打包的流程。很多时候我们需要将打包好的apk上传到ftp中,这时候我可以修改custom_rules.xml这个文件就可以实现这个需求了。
我们的思路是每天下班后团队各成员在指定的时间(例如下午18:30)之前把各自的代码上传到SVN,然后服务器在指定的时间(例如下午18:30)更新代码、执行ant 打包命令、最后将apk包存放在指定目录(或者上传指定ftp目录)、其他部门或者同事可以访问指定的地址来下载最新的APK包。
团队开发时,每天都需要输出一个apk包给其它部门的同事测试验证。打包几乎是每天必须完成的功课。如果用IDE来输出apk,那速度是非常慢的,如果还需要有不同渠道的apk包,那程序猿都要疯了。当然也有用ant工具的,这个工具可以很快的打包apk,但还是需要自己在命令行中输出,那也不是特别完美。
Android Sqlite数据库版本升级管理初探 http://angrycode.cn/archives/428 在做Android项目涉及到版本升级,而数据库同样也会因为需求的变更而导致表的增减以及字段的增减。
麦洛工作室《围观啦》APP首发啦!你是否经常被微博中大量的资讯搞得晕头转向,不知所措呢?你是否在刷微博时经常被大量广告内容充斥着呢?庞大的信息量到底哪些才是您最关心的呢?《围观啦》的初衷就是在茫茫的微博大海中将”最有价值,最具争议”的内容为用户精选出来。
要实现以上左右滑动效果,可以关注http://miloisbadboy.com博客
原文更精彩:http://miloisbadboy.com/archives/237 最近没有开发工作,都在做排序算法的学习和研究工作。 之前麦洛在《排名算法学习》http://miloisbadboy.com/archives/234中就提到了排名算法的一些学习资料。
原文:http://miloisbadboy.com/archives/202 最近一段时间麦洛被推荐算法搞得焦头烂额了.刚刚接触这一块,完全是小白,搞不清东南西北. 麦洛也感叹这一年搞的东西可以用一个字来形容–杂.
原文: http://miloisbadboy.com/archives/157 这两天麦洛在做有关离线阅读的功能. 关于离线阅读功能思路其实很简单,无非就是先将一些需要的数据下载到本地,当在不需要网络的时候,可以从本地读取内容.
原文:http://miloisbadboy.com/archives/149 市场上几乎每款APP都具有网络连接的功能。而对于开发项目来说,连接网络也是经常会用到的。现在麦洛将网络连接的代码封装成工具类,这些代码在写与服务器交互的应用时,是非常有用的。
Android Log日志的封装类,显示类名以及行号,快速定位欢迎学习,交流http://miloisbadboy.com/archives/145
原文地址 http://miloisbadboy.com/archives/109 这是milo很早之前写在论坛上的一个帖子,现在整理出来,milo也复习一下一般来说Android 的四大组件都是运行在同一个进程中的,但远程Service运行在不同的进程里。
原文地址: http://miloisbadboy.com/archives/102 这是去年麦洛做阅读软件的时候,做的一个练习项目.今天麦洛收到一个网友的邮件说要这本书的源码.其实这本书的源码早已经在一个论坛公布了.
原文链接: http://miloisbadboy.com/archives/93 前几天网友yufengzungzhe@163.com指出PullToRefreshView的一个bug.当时麦洛还没有注意到,现在麦洛已经利用修复了.
麦洛终于发布上拉下拉控件的源码以及Demo啦 赶紧下载吧,欢迎给麦洛留言提bug啊 原文地址: http://miloisbadboy.com/archives/70 详情请猛击麦洛工作室http://miloisbadboy.com
昨日麦洛公开了支持ListView,GridView,和ScrollView的上拉下拉控件,由于时间紧迫,只是贴出了一个主要代码.反映还不错.不过麦洛觉得可能还不是讲到很清楚.麦洛已经在努力整理一个demo了,目前整理了差不多了,不过还发现了一点小bug,顺便解掉.
麦洛原文:http://miloisbadboy.com/archives/55 由于这个文章比较长点,这里简单贴点代码,详细说明还是看原文吧 主要源码 package com.
麦洛原文连接http://miloisbadboy.com/archives/51 麦洛开通博客以来,有一段时间没有更新博文了.主要是麦洛这段时间因项目开发实在太忙了.今天周六还在公司加班,苦逼程序猿都是这样生活的.
麦洛已经拥有自己的blog,可以直接到http://miloisbadboy.com/archives/24访问 谢谢!
之前麦洛实现水平滑动屏幕效果都是从Android Launcher 源码中的Workspace学来的。现在发现一个功能更加丰富的滑动屏幕的类库。 这个开源项目叫android-viewflow,下载地址https://github.com/pakerfeldt/android-viewflow 这个类库使用起来非常方便,而且项目下还有个viewflow-example项目,分别介绍了各种viewflow的用法 感兴趣的同学还可以看看其实现源码。