自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

zfan93的博客

进击的程序员

  • 博客(30)
  • 资源 (5)
  • 收藏
  • 关注

原创 旧机宝开发笔记之:目录

“旧机宝”这个应用的开发,有两个目的:通过将旧手机变成一些有用的工具来让曾经陪伴我们的旧手机继续发光发热,避免吃灰终老的命运。通过旧机宝来学习kotlin语言,学习、验证、练习、记录一个完整app开发过程中会用到的各种技术。一切选择、开发都以上面两点作为目的,博客一般是应用写到哪就记录到哪,每隔一段时间会有整理,再更新记录在本目录中。欢迎各位大佬共同讨论学习。BottomNavigat...

2019-11-08 15:49:47 784 1

原创 Ktor实现Https双向认证

前言Ktor依靠跨端的能力,使得我们可以统一前后端、多平台的网路开发体验,本篇讲解如何在Ktor中实现Https双向认证。密钥库双向认证简单来说就是前后端各自生成自己的密钥库(包含一对公私钥),并把自己密钥库生成的证书(公钥)添加到对方的密钥库中(成为信任证书),完成操作时,前后端各自的密钥库应当包含自己原来的公私钥对及对方的证书(公钥)。密钥库管理工具生成密钥的方式挺多,涉及前端一般会使用jdk中的keytool工具,这里推荐一个专门生成、管理密钥库的工具:KeyStore Explorer官

2022-05-03 22:11:32 791

原创 旧机宝开发笔记之:RN开发编译器的选择

学习RN开发的人大多是从其他领域延伸而来,因为RN目前可以跨越android、ios和web,那么学习RN的群体中主要就包括android开发者、ios开发者和web开发者,此外再增加一个直接入门RN没有其他任何基础的情况(项目所迫)。对于android开发者android开发者绝大部分都在使用android studio进行安卓开发(eclipse ADT 2015年就停止维护了不做考虑),...

2020-04-28 13:55:26 497

原创 旧机宝开发笔记之:RN应用和Native应用之间的通信(回调)

虽然完成了RN对原生方法最简单的调用,但是这种调用是单向的、没有回应的,这让很多需要“交互”的逻辑很难进行,现在我们模仿原生代码来寻找解决方案。思路java类中的方法是怎样和调用者“交互”的呢?常见方法如下:利用方法的返回值传一个回调/方法进来,直接回调调用方提供的逻辑发消息/广播等把结果通知出去我们可以模仿java思路来试试RN是否可行。然后再看看RN有没有什么自己独有的方法。...

2020-04-28 11:05:38 535

原创 旧机宝开发笔记之:RN应用的导航React Navigation(入门)

RN应用是显示在原生的一个页面(Activity)中的,并且RN只有一个入口,但是RN应用可能包含多个页面,那么RN怎么做页面跳转呢?有安卓开发经验的可能会想:既然RN是加载在一个Activity里,本来安卓原生里就是用一个activity来绘制一个页面,那我写多个Activity分别加载不同RN页面不就好了么?这种做法并不现实,相当于把一个App里的每个页面都单独打包成一个App,并分别安装,然...

2020-04-28 10:06:05 544

原创 旧机宝开发笔记之:RN应用和Native应用之间的通信(入门)

前言RN主要用于编写UI,原生API的调用、网络通信等等复杂的逻辑则大多是通过原生代码去实现的。那么RN和原生代码是怎么交互的呢?官网在此以下以安卓平台原生为例,我们按照官网的教程来实现这样一个交互demo,借此来了解互相调用的用法。不过我们的起点是一个刚刚创建的RN应用(通过npx react-native init来创建的),可能有些操作已经存在,不过这些步骤不会因此而被忽略。思路...

2020-04-25 22:21:35 491

原创 旧机宝开发笔记之:崩溃日志采集

安卓app运行过程中会产生一些异常(Exception),当这些异常能够被捕获的时候,程序本身就可以通过try/catch来处理异常,但是当这些异常不能被捕获(UncaughtException)的时候,就交给系统的默认的未捕获异常处理程序来处理,而默认的处理方式就是退出应用并打印出异常信息。对应用崩溃信息的采集,就是要在系统接手处理UncaughtException之前,先将报错信息写文件或发后...

2019-12-27 17:18:32 135

原创 旧机宝开发笔记之:通过网络调试

确保androidstudio和测试机在同一局域网。1、连接设备将设备打开开发者模式、usb调试(usb安装),通过数据线连接电脑,输入命令行查看是否有设备连接。 adb devices通过androidstudio查看更快更方便2,设置端口 adb tcpip 5555看到:restarting in TCP mode port: 55553、断开数据线,在设备的关...

2019-12-27 10:56:46 142 1

原创 旧机宝开发笔记之:局域网内android设备的发现和通信

旧机宝需要在一个局域网内(同一wifi下)实现设备的发现和通信功能。对于设备的发现,包括主动去搜寻别的设备以及主动声明自身的存在。对于通信则要求通信的句柄和设备的基本信息存储起来以供下次使用。实现的原理非常简单,创建socketserver,并通过UDP告诉其他设备该socketserver的存在,其他设备则通过连接该socketserver来维持通信链路。1、设备发现在所有设备都在同一网络并...

2019-12-27 09:37:28 467

原创 旧机宝开发笔记之:protobuf(PB)、GSON、JSON的选用

之前的项目大多使用GSON,理由是序列化和反序列化非常方便,又是使用广泛的多平台JSON格式,尤其为第三方应用提供aidl接口的时候,如果有些数据不方便传递给第三方,而平台又一股脑的用经典的JSON格式都返回了(有些字段只有应用内部才需要用到),此时通过序列化和反序列化对JSON数据的过滤筛选有奇效。当然这些都考虑到了开发的便利性,用亲儿子GSON而不用其他的fastjson等则是考虑到兼容性。不...

2019-11-08 16:37:12 661

原创 旧机宝开发笔记之:自定义刷新控件(兼RecyclerView)的使用

之前定义的刷新控件在使用的时候,基本等同于RecyclerView的使用,对于刷新操作只是增加了一个加载数据的回调罢了,因而本篇说是之前刷新控件的使用,大部分内容还是RecyclerView的使用。旧机宝的“设备页”打算分为三种布局,从上到下依次是一个查询bar,一个轮播的banner,还有每行两列的设备列表。第一步:在布局中使用自定义刷新控件<wang.buxiang.wheel.w...

2019-11-08 15:26:36 174

原创 旧机宝开发笔记之:SwipeRefreshLayout+RecyclerView实现的下拉刷新上划加载更多控件

旧机宝的用户反馈、设备列表、功能列表等等都有可能存在大量数据,需要进行分页显示,一个下拉刷新上划加载更多的控件是非常有必要的。这个时候就想到了原生的下拉刷新控件SwipeRefreshLayout,原生的应该支持最好也最简单纯粹,对于上划加载更多则通过RecyclerView的滑动坚挺来实现,之所以选用RecyclerView是因为其支持非常广泛的布局方式,有取代一众listview的趋势。为了方...

2019-11-07 10:55:57 205

原创 旧机宝开发笔记之:BottomNavigationView+ViewPager+Fragment实现的APP首页

旧机宝原本打算采用类似于QQ的侧边划出菜单的首页布局,但是鉴于目前的全面屏手机倾向于用屏幕侧边滑动来代替之前的返回按钮,导致侧边划出菜单的体验不是很好,容易混淆,故而选用下方导航栏的经典页面布局。又因为之前有人评价首页直接可以左右滑动切换页面的方式很贴心,故而选用BottomNavigationView+ViewPager的组合来实现首页的可滑动布局。为了代码更有条理,ViewPager的每一个页...

2019-11-06 19:37:05 353

原创 旧机宝开发笔记之:Android Studio集成protobuf

1、项目的build.gradle文件的buildscript/dependencies增加如下内容classpath 'com.google.protobuf:protobuf-gradle-plugin:0.8.10'整个文件如下所示:buildscript { ext.kotlin_version = '1.3.50' repositories { g...

2019-11-05 17:00:28 795 4

原创 Android view的绘制流程

Android view绘制的三个流程1、测量(Measure)2、布局(Layout)3、绘制(Draw)1、测量(Measure)三种测量模式:1、UNSPECIFIED:不指定测量模式,可以是想要的任何大小2、EXACTLY:精确测量模式,对应指定数值的尺寸或者match_parent3、AT_MOST:最大值模式,不超过父视图允许最大尺寸的任何尺寸,对应warp_co...

2018-10-31 11:09:28 174

原创 Android触摸事件

触摸事件的类型(MotionEvent):1、 ACTION_DOWN:按下屏幕 (必有)2、ACTION_MOVE:按下屏幕到离开屏幕前移动一定距离 (可有)3、ACTION_UP:离开屏幕(必有)触摸事件传递过程:分发(dispatchTouchEvent)拦截 (onInterceptTouchEvent)处理(onTouchEvent)触摸事件的传递整体流程是...

2018-10-30 17:12:45 240

原创 第二个Android things应用

经过第一个Android things应用,基本可以确定我们已经建立起一个正确的开发环境,不过很多东西还是陌生的,可能某些方法或者值在另外一种环境下的使用会有新的启发。是时候开始真正的开发入门了,Android things的第二个应用:button点击的监听。(为了防止记混,将之前的module名称由app改为blink,和官方示例代码脑保持一致)。 首先还是在第一个项目里面,创建一个新的mo...

2018-06-12 19:06:23 652 2

原创 第一个Android things应用

上一篇博客完成了android things的搭建,按照国际惯例,该来个hello word应用了,还好这一切都在android studio中进行,对于安卓软件开发人员来讲,应该是很熟悉的。 打开Android studio,选择新建一个项目,填名字包名。 下一步,只选择android things,API版本最好和你的树莓派刷入的版本一致,这些信息都可以外接屏幕和鼠标查看。 下一步,...

2018-06-11 20:02:06 6882

原创 android things环境搭建

首先,Android things的国内官网在此:https://developer.android.google.cn/things/ 另外,这个博客是写来和安卓软件程序员一起探讨Android things的哦。1、准备一块开发版谷歌宣布的已上市或者将要上市的开发板大约有五六款了,各有优劣,对于不了解硬件的安卓软件开发人员,直接推荐成本最低最适合入门的板子:树莓派3B。树莓派3B没有...

2018-06-11 18:56:29 1300

原创 安卓开发 Bundle的使用小结

Bundle用于保存键值对信息,常放在intent中实现数据传递,使用方法如下:1、实例化一个Bundle对象:       Bundle bundle=new Bundle;2、将键值对数据存放到bundle对象中:       bundle.putString("key_string","value");       bundle.putInt("key_intr",123

2016-08-01 09:44:58 822

原创 安卓开发 SharedPreferences用法小结

sharedpreference经常用于保存关于应用配置信息等的键值对类型数据,这些数据将会以xml文件的形式,保存在(手机上)应用的shared_prefs文件夹下。SharedPreferences的用法:一、数据的获取        1、获取sharedpreferences:              SharedPreferences s=getSharedPrefere

2016-07-28 09:52:23 1121

原创 Fragment要点总结

四种状态:运行状态(可见,有焦点)                      暂停状态(可见,无焦点)                      停止状态(不可见,无焦点)                       销毁状态(删除或所在Activity结束)11个生命周期方法:onAttach()                                

2016-05-12 09:44:22 292

原创 ContentProvider入门

ContentProvider是安卓的四大组件之一,提供应用之间的数据交互。对ContentProvider的理解:每个应用在手机上都有一个自己的仓库(存储空间),用来保存应用的数据。但是有的时候需要把自己的应用数据提供给别人用,或者别人需要主动的来得到你的数据。以往的做法是,谁用我的数据,就让他自己进入我的仓库来拿(直接访问应用存储空间获取数据),但是这样很不安全啊,我甚至都不知道是谁对

2016-05-11 14:45:07 280

原创 BroadcastReceiver要点总结

2种注册方式:代码:registerReceiver(BroadcastReceiver receiver,IntentFilter filter)                            配置文件:在AndroidManifest中的BroadcastReceiver配置中,添加2种广播发送方式:sendBroadcast(无序广播)

2016-05-10 15:55:37 221

原创 Service要点总结

打开Service的两种方法:startService(Intent intent)(打开后不管,不“手动关闭”就一直运行)                                                bindService(Intent intent,ServiceConnection conn,int flags)(和打开者绑定,共存亡)关闭service

2016-05-10 15:20:33 284

原创 Activity要点总结

2种打开方式:startActivity                            startActivityForResult(Intent intent,int requestCode)                           ( ps:原activity需重写onActivityResult(int requestCode,int resultCo

2016-05-10 14:00:13 315

原创 安卓添加程序入口的方式 快速添加快捷方式

有的时候需要安卓应用显示多个入口,即快捷方式。网上确实有几种添加快捷方式的方法,但是因为时间有限,直接模拟入口activity设置下参数应当是最快的方式了。以下是程序自动生成的入口activity参数 <activity android:name=".ui.Unlock" android:launchMode="singleTask"

2016-05-06 17:49:50 1771

原创 android studio中 R文件丢失可能的产生原因 以及解决方案

在android studio上编译apk的时候,遇到R文件丢失,对应import语句变成灰色的问题。偶尔的R文件丢失可以尝试按以下步骤修复:1、clean project:       Build->Clean Project2、rebuild project:       Build->Rebuild Project3、以及重启应用乃至系统。       File->I

2016-04-29 09:06:20 15259 1

原创 安卓Selector失效、无用的解决方案

在开发安卓的时候经常会用到selector来为button自动设置背景,selector中有多种item,每个item可以定义一种状态,同时设置这种状态所要显示的图片。但是在使用的selector中存在多种状态的时候,可能遇到满足这种状态但是图片“没有改变的情况”比如这个selector: selector实现在三种对应状态下显示的内容。但是在运行的时

2016-04-27 10:10:26 5402 1

转载 安卓状态栏通知Notification方法更新(setLatestEventInfo)

今天使用安卓状态栏通知的时候,发现Notification的setLatestEventInfo构造方法画上的横线,也就是以前版本的方法,将要舍弃,强迫症没办法啊,于是查询资料找到了最新的构造方法,留存下吧。Notification notification = new Notification.Builder(context) .setAutoCancel(true

2015-08-11 16:53:54 617

zxing包 安卓二维码专用

用于安卓二维码开发(实现扫描或者生成)的jar包

2014-12-27

安卓android入门到精通详细讲义ppt

安卓android入门到精通详细讲义ppt

2014-12-20

java详细讲义 ppt

java详细讲义 ppt

2014-12-20

电子科技大学 工商管理双学位 管理信息本系统课件

电子科技大学 工商管理双学位 管理信息本系统课件 官方正版

2014-12-20

电子科技大学数字逻辑 课件(全部课程)

电子科技大学数字逻辑课程全部课程课件,期末突击必备良品!

2014-07-03

空空如也

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

TA关注的人

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