- 博客(51)
- 资源 (41)
- 收藏
- 关注
原创 Android面试高频知识点
持续更新、、、一 Activity的生命周期 ?Activity的生命周期 ,包括典型的生命周期和异常情况下的生命周期,以及singletop模式和simgletask模式的生命周期。典型生命周期包括c s r p s d 即onCreate,onStart,onResume,onPause,onStop,onDestroy,注意特定场景下的生命周期,比如打开新的activity 时...
2019-09-16 17:36:31
353
原创 Android剖析Framework
Zygote进程是怎么启动的?首先Init进程是Linux进程启动后用户空间的第一个进程,然后去加载inti.rc配置文件,看需要加载哪些服务,Zygote就是其中之一。还有ServiceManager进程。 父进程fork出子进程,如果子进程挂了,那么父进程会收到子进程发送过来的SIGCHLD信号,进而做处理。比如Zygote进程挂了,那么Init进程就收到SIGCHLD信号,继而重启Zyg...
2019-09-09 20:43:06
3288
原创 Java设计模式之模板方法
Java设计模式之模板方法//抽象类 模板类public abstract class ACourse { //final方法不能被子类重写 // 核心方法 protected final void makeCourse(){ //制作课程的流程,模板化:制作PPT,制作Video,写手记(可选),打包资源。 makePPT();...
2019-06-22 21:24:27
277
1
原创 Java设计模式之桥接模式
Java设计模式之桥接模式考虑一下生活中的场景,银行存款有很多类型,最常见的是活期和定期,而银行有很多家。比如中国农业银行有活期和定期,中国工商银行也有活期定期。下面看看桥接模式怎么实现://新建接口,账户public interface Account { Account openAccount(); void showAccountType();}//定期...
2019-06-21 13:53:43
262
原创 Java设计模式之组合模式
Java设计模式之组合模式考虑这样一个场景,某视频学习网站,有很多课程,也有很多课程目录,课程有名称,有价格。比如Java课程目录有很多Java课程,Android课程目录有很多Android课程,如果让课程和课程目录都继承某个抽象类,比如课程组件,就可以把课程和课程目录视为同一对象进行操作。具体操作有共同的地方,也有不同的地方。下面看看具体实现过程。//创建抽象类目录组件,然后创建课程...
2019-06-19 17:33:34
191
原创 Java设计模式之享元模式
Java设计模式之享元模式考虑这样一个场景,年终公司要求部门领导去做报告,比如说多个领导要求研发部门经理在不同的时间分别去做报告,研发部门经理肯定是在第一次把报告准备好,以后直接拿来用,而不是每次都重新做一份报告。下面看看过程实现。//新建员工接口public interface Employee { void report();}//新建管理者类,并实现接口publi...
2019-06-17 18:26:55
151
原创 Java设计模式之适配器模式
Java设计模式之适配器模式适配器模式包括类适配器和对象适配器,下面先看类适配器:类适配器public class Adaptee { public void adapteeRequest(){ System.out.println("被适配者的方法"); }}public interface Target { void request...
2019-06-16 16:19:18
135
原创 Java设计模式之装饰者模式
Java设计模式之装饰者模式先考虑这样一个生活场景,煎饼摊前面有三个人饿了要买煎饼,第一个只要煎饼,第二个煎饼加鸡蛋,第三个煎饼加鸡蛋加香肠。下面看代码实现。//新建一个类 煎饼public class Battercake { public String getDesc(){ return "煎饼"; } public int price(){...
2019-06-15 21:38:57
160
原创 Java设计模式之外观模式
Java设计模式之外观模式外观模式也叫门面模式。考虑这样一个业务场景,商城里面有积分兑换功能,比如1000积分可以兑换一个键盘等。这里可以拆分出三个子系统,积分数量和礼物库存校验子系统,积分支付子系统,物流子系统。//创建积分礼物类public class PointGift { private String name; public PointGift(Str...
2019-06-15 09:56:43
163
原创 Java设计模式之原型模式
Java设计模式之原型模式//首先新建一个类Mailpublic class Mail { //这个类总共有三个属性 private String name; private String emailAddress; private String content; public Mail(){ System.out.println("...
2019-06-14 21:57:46
287
原创 Java设计模式之容器单例模式
Java设计模式之容器单例模式public class ContainerSingleton { private ContainerSingleton(){} private static Map<String , Object> map=new HashMap<>(); public static void putInstance(Str...
2019-06-14 14:11:15
1644
原创 Java设计模式之单例模式最佳实践
Java设计模式之单例模式最佳实践//新建枚举类public enum EnumInstance { INSTANCE; private Object data; public Object getData() { return data; } public void setData(Object data) { ...
2019-06-13 20:38:58
261
原创 Java设计模式之饿汉式单例模式
Java设计模式之饿汉式单例模式public class HungrySingleton { private HungrySingleton(){} private final static HungrySingleton hungrySingleton=new HungrySingleton(); public static HungrySingleton...
2019-06-13 15:31:40
205
原创 Java设计模式之单例模式
Java设计模式之懒汉单例模式//懒汉式单例模式public class LazySingleton { private static LazySingleton lazySingleton=null; //私有构造,不允许外面 new 对象 private LazySingleton(){} public static LazySingl...
2019-06-11 22:06:10
125
原创 Java设计模式之构建者模式
Java设计模式之构建者模式//新建类Course,有三个属性。public class Course { private String courseName; private String coursePPT; private String courseVideo;//toString方法用于调试 @Override public String...
2019-06-11 08:06:34
231
原创 Java设计模式之工厂模式
Java设计模式之工厂模式//新建录制课程接口public interface Video { void produce();}//新建实现类public class JavaVideo implements Video { @Override public void produce() { System.out.println("录制...
2019-06-10 21:12:22
170
原创 Java软件设计原则
先了解UML相关知识UML类图+ 表示public- 表示privae# 表示protected~ 表示defualt下划线 表示static斜体 表示abstract开闭原则:对扩展开放,对修改闭合。// 1.首先创建一个接口ICoursepublic interface ICourse { Integer getid(); S...
2019-06-10 10:56:32
539
1
原创 Retrofit框架源码分析一
Retrofit框架源码分析一Retrofit基本使用第一步: //先引入依赖,(这里不需要另外引入OkHttp依赖,因为Retrofit默认内置) //第一个,retrofit依赖 implementation 'com.squareup.retrofit2:retrofit:2.6.0' //第二个,用于GsonConverterFact...
2019-06-07 21:08:22
237
原创 OkHttp网络请求框架源码解析二
OkHttp网络请求框架源码解析二本篇讲解OkHttp核心知识拦截器,共有5个拦截器,分别为RetryAndFollowUpInterceptor,BridgeInterceptor, CacheInterceptor,ConnectInterceptor和 CallServerInterceptor。下面一一讲到。//上一篇讲到,作为Runnable的 AsyncCall...
2019-06-04 12:47:59
175
原创 OkHttp网络请求框架源码解析一
OkHttp网络请求框架源码解析一基本使用,在app的build.gradle添加依赖 compile 'com.squareup.okhttp3:okhttp:3.8.1'在配置文件添加网络访问权限 <uses-permission android:name="android.permission.INTERNET"></uses-...
2019-06-03 18:08:55
187
原创 mac配置Weex环境及HelloWorld
mac配置Weex环境及HelloWorld先检查npm, node是否安装。如下图。//安装weex稳定版V1.0.5npm install -g weex-toolkit@1.0.5//查看是否安装成功weex -v//选择yes? May weex-toolkit anonymously report usage statistics to...
2019-06-02 18:49:53
417
原创 vue环境配置及新建HelloWorld
vue环境配置及新建HelloWorld系统环境:Mac Os , iTerms.1.检测环境npm -vnode -v 2.安装vue.clinpm install -g @vue/clivue --version//vue版本最好在3.0以上3.创建工程//进入保存工程的文件夹cd /Users/crook/Docume...
2019-06-01 08:08:36
1001
原创 安卓热修复----手动加载dex文件到设备并执行
运行环境:MacOS 10.12.6, Android Studio 3.1.4, 终端工具(iTerms), mumu模拟器。步骤:1.新建文本Hello.java,内容如下:public class Hello{ public static void main(String[] args) { System.out.println("Hello Android...
2019-05-14 14:35:03
860
原创 安卓TV开发之MetroView选中框
安卓TV开发最大的特点是遥控器操作,所以电视界面上要有醒目的操作反馈,这就是MetroView选中框。除了用白色的边框表示被选中,还可以增加其他的效果,比如放大一点点。由于这是安卓TV开发标配功能,我把它从项目中抽取出来,封装成工具类,然后可以直接调用。 实现效果如下,界面有点闪,那是录屏软件的原因: 工程目录也很简单,工具类都放在一起,只有一个调用类,目录如下: ...
2018-09-20 21:54:33
621
原创 安卓TV开发之实现原生播放器
安卓有很多第三方的播放器,比如最强大的ijkPlayer和最全能的Vitamio播放器,如果是手机APP开发,可以直接拿过来用。但是TV APP开发不行,因为电视盒子的高定制性,兼容性很差,比手机上差很多,这个是我在20+盒子上测试的结果。这中间各种调试,各种参数修改,按下葫芦浮起瓢,经历了无数的噩梦。最后,不得已,只好抱着试一试的态度,实现原生的播放器。结果在所有盒子上,完美适配,简直了。后...
2018-09-20 17:01:51
7034
3
原创 安卓TV开发之自定义键盘
最近公司在搞智能电视APP开发,里面涉及到许多常用功能,基本上TV开发都需要用到这些,比如说焦点选中框,自定义键盘等等,后面陆续记录开发过程。本文重点介绍自定义键盘。首先要说明的是安卓系统自带有软键盘,理论上来讲是可以直接拿来用。如果是手机APP开发,确实是直接调用手机软键盘,除了特殊场合需要自定义键盘,比如处于安全考虑的密码键盘,或者输入金额的键盘等。但是TV开发不行,不信你打开你家的...
2018-09-19 21:30:29
3159
1
原创 安卓经典蓝牙开发,包括自动连接开发板蓝牙并通信
安卓经典蓝牙开发,包括自动连接开发板蓝牙并通信蓝牙开发首先弄清楚两点:手机蓝牙连接手机蓝牙与手机蓝牙连接外设蓝牙(比如开发板上的蓝牙),这两者连接方式要区分开来,前者需要两个手机同时安装开发的APP,APP里面的代码指定了唯一的UUID用于通信,而后者只能在手机APP里面通过反射的方式获取外设蓝牙的UUID,然后连接通信。本文是使用后者。第二是要知道经典蓝牙开发与低功耗蓝牙开发(即Ble)二者是不...
2018-03-30 17:07:35
4125
1
原创 Mac下用Qt Creator开发Android的环境搭建(图文教程)
环境:mac 10.12.6,Qt Creator 4.4.3,Based on Qt 5.9.3 (Clang 7.0 (Apple), 64 bit),Android Studio2.3.3。先看跑起来的效果,选择对应模拟器后即可看到最终效果。这是常见的柱状图,还有很多Demo效果。从 示例 里面任意选择一个工程作为测试。因为开发安卓需要进行相关配置(开发ios不需要),所以按照下图进入配置页面
2017-12-06 11:45:02
2774
原创 安卓手机使用NFC读取MifareClassic等标签信息
参考文章Activity里面的核心代码: private NfcAdapter mNfcAdapter; private PendingIntent mPendingIntent; @Override public void onNewIntent(Intent intent) { { Tag tagFromIntent = int
2017-09-26 11:24:52
12286
原创 Flutter学习之旅(六)----ListView控件自定义Adapter以及带参数跳转
这里写链接内容ListView控件是APP开发中最为常见的控件之一,回想Android开发中是重写BaseAdapter中的四个方法,尤其是getView()方法,返回我们最终显示的视图,并且在其中进行复用处理。在Flutter中,这个过程是怎样实现的呢?首先给定要显示的数据List<String> items=<String>['A','B','C','D','E','F','G','H','J'
2017-07-30 21:26:32
11411
4
原创 Flutter学习之旅(五)----网络请求获取数据、解析数据和显示等待动画
参考官方文章(英文版)网络请求是APP开发中至关重要的一步,回想一下Android开发中的Retrofit框架或者Volley框架,iOS开发中AFNetworking框架。如果使用Volley进行网络请求,我们需要new一个StringRequest请求,在里面回调成功和失败的方法,用GsonFormmater等类似工具解析json串,然后将这个请求添加到队列,这中间要给予用户友好的提示,即显示与
2017-07-30 11:00:19
12269
原创 Flutter学习之旅(四)----Flutter开发语言Dart的基础语法
Dart官网镇楼(英文版)先从一段简单的Dart代码入手。// 定义一个方法printNumber(num aNumber) {//参数类型为num, print('The number is $aNumber.'); // 打印信息到控制台,$aNumber等价于${aNumber},表示取aNumber变量的值。}// APP运行入口main() { var numbe
2017-07-25 21:37:33
14710
原创 Flutter学习之旅(三)----Flutter常见问题FAQ,看完之后不再是Flutter小白
很多人还不熟悉甚至没听过Flutter,只知道它是用来搞移动端开发的,现在Android和iOS开发已经很成熟了,还有RN(React Native)框架,为什么谷歌还要搞一个Flutter,它能够做什么,究竟比别人好在哪里,有什么优势和不足,又是怎么做到的?下面是一些关于Flutter的常见问题,参考文章(英文版)。 相信看完之后你就真相大白了。什么是Flutter?Flutter是移动端开发S
2017-07-22 10:52:21
13588
1
原创 Flutter学习之旅(二)----MD风格和点击事件
Flutter中有许多常用的控件,比如下面的: Text:文本控件,相当于安卓TextView; Row,Column:相当于安卓LinearLayout的两个方向; Stack:与Positioned控件配合,放到top, right, bottom, or left; Container:矩形控件,可与BoxDecoration配合来装饰 background, a border, o
2017-07-21 21:36:09
9392
3
原创 Flutter学习之旅----环境搭建与Hello World
Flutter官网镇楼Flutter来自Google,是移动端APP开发SDK,使用Dart语言编写一套代码即可同时在Android和iOS平台运行,性能无限接近原生,支持android 4.1以上 和 iOS8以上。想进一步了解Flutter,进入传送门(英文版)。目前虽然是alpha版,截止到2017年7月20日,其在Github上的star达5.6k+,而且相当活跃,不论是使用者还是开发工程师
2017-07-20 19:11:33
27142
4
原创 安卓开发进阶之RxJava在实际项目中使用--第二篇
关于RxJava原理分析,请参考仍物线写的文章—-给 Android 开发者的 RxJava 详解。本文不对原理作过多的分析,从最快上手的角度,让开发者使用起来,当我们有实践经验后回过头来看原理分析会更清晰。 本系列共有三篇文章,分别关于Rxjava的基础使用(最快,最实用),Retrofit使用(Github上star达22k+,安卓领域排名第一),最后是RxCache缓存(大部分app都支持离
2017-07-02 16:26:52
3905
1
原创 安卓开发进阶之RxJava在实际项目中使用--第一篇
关于RxJava原理分析,请参考仍物线写的文章—-给 Android 开发者的 RxJava 详解。本文不对原理作过多的分析,从最快上手的角度,让开发者使用起来,当我们有实践经验后回过头来看原理分析会更清晰。 本系列共有三篇文章,分别关于Rxjava的基础使用(最快,最实用),Retrofit使用(Github上star达22k+,安卓领域排名第一),最后是RxCache缓存(大部分app都支持离
2017-07-01 16:32:08
5909
2
翻译 谷歌2017 I/O大会后续:Android Studio 3有哪些新特性?(翻译)
原文链接地址本文将介绍AS3(Android Studio 3)预览版的主要新特性。预览版官方下载地址 预览版国内下载地址一、内置支持Kotlin 本次大会上宣布的一个重大消息是谷歌让Kotlin成为了安卓开发最好的语言。尽管之前AS可以通过插件的形式支持Kotlin,现在将Kotlin内置AS后可以让开发者更加容易开始使用Kotlin。AS3支持三种方式使用Kotlin. 方式一:新建Kot
2017-06-26 21:54:31
1366
原创 最简洁代码实现Listview多选
记得刚开始学android开发时要实现Listview多选然后批量操作的时候,用Checkbox+Textview,因为adapter复用后上下翻页的时候Checkbox状态无法保存,然后用一个全局变量记住该状态,翻页的时候再恢复状态。现在想想这么搞不仅low爆了,而且效率低。由于最近项目又需要实现类似的功能,想想不能重蹈覆辙,于是谷歌了一把,看到CheckedTextView,原来谷歌工程师已经帮
2017-06-26 19:06:32
5899
原创 安卓开发入门之自定义柱状图
核心代码70行public class MyBarchartView extends View { int mMaxValue = 100;//显示的最大值 int corner = 0;//圆角角度 int mValue4show = 0;//显示的值 int mTempData = 0; int textPadding = 10;//值与图之间的间隔
2017-06-22 18:56:00
1070
安卓开发入门之自定义View(翻译)
2017-06-17
安卓开发之串口通信android-serialport-api-master
2016-06-29
安卓sdk 17,android 4.2.2
2016-06-29
ios开发 键盘管理,关闭键盘,隐藏键盘,键盘挡住编辑区域时上移编辑区域
2016-05-11
安卓开发 搜索WIFI列表然后连接
2016-03-24
记忆杯垫源码,原理图和说明
2013-07-28
51单片机驱动stc芯片自带EEPROM,已实现,有源码。
2013-07-27
51单片机驱动PCF8591AD转换
2013-07-26
51单片机PCF8591芯片I2C总线驱动DA转换
2013-07-25
51单片机I2C总线驱动程序源码及相关资料
2013-07-25
温度传感DS18B20程序
2013-07-24
红外遥控器解码,51单片机接受遥控器发送的信号,然后解码,将将结果显示在数码管。
2013-07-22
51单片机驱动步进电机程序,有开关功能,加速和减速功能,还有反向功能。
2013-07-21
ZOkHttp.zip
2019-06-05
安卓TV开发之MetroView选中框
2018-09-20
安卓TV开发之实现原生播放器
2018-09-20
安卓TV开发之自定义键盘
2018-09-19
安卓手机使用NFC读取MifareClassic等标签信息
2017-09-26
Flutter学习之旅(六)----ListView控件自定义Adapter以及带参数跳转
2017-07-30
Flutter学习之旅(二)----MD风格和点击事件
2017-07-21
Flutter学习之旅----环境搭建与Hello World
2017-07-20
安卓开发进阶之RxJava2在实际项目中使用--第三篇
2017-07-07
安卓开发进阶之RxJava在实际项目中使用 第二篇
2017-07-02
安卓开发进阶之RxJava在实际项目中使用--第一篇
2017-07-01
最简洁代码实现Listview多选
2017-06-26
安卓开发入门
2017-06-22
安卓开发入门之自定义View
2017-06-17
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人