自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(108)
  • 资源 (2)
  • 收藏
  • 关注

原创 Java中多线程访问集合中的数据

List的多线程访问,之前本以为和普通的变量一样,没有啥区别,通过volatile关键字就可以保证可见性。volatile修饰list只能保证该list对应的引用是volatile的,并不能保证列表中对应元素的可见性。ConcurrentSkipListSet / ConcurrentSkipListMap:这两个集合类基于跳表(skip list)的数据结构实现,提供了线程安全的有序集合和有序映射。这些线程安全的集合类在多线程环境下使用时能够提供高效的并发性能和正确的线程安全保证。

2023-10-16 19:37:40 90

原创 Android学习资料

b站上也有很多不错的学习视频,对于看书看网页看不进去的同学来说,也可以系统地看看Android开发的视频,也可以关注我的账号,我后续有新写的文章或新的视频也会陆续在b站发布。玩安卓网站是大神鸿洋(https://blog.csdn.net/lmj623565791)创办的Android学习网站,体系清晰,内容全面,收录了大量优质博客。csdn网站在IT开发领域已经运营了好多年,我在上学的时候也就开始写csdn以及在网站上学习了。也是上述介绍过的大神的公众号,WanAndroid网站的作者。

2023-07-07 22:55:48 77

原创 Android开发学什么

最后,我们来总结一下,Android开发要学习的内容就是界面的布局+数据的存储方式。所以Kotlin语言的简单使用也是大部分学习Android开发的人需要学习的。数据:应用界面上显示的各种内容是由数据组成的,数据可以临时存储在内存中,持久化存储在设备上,或者通过网络请求数据。Android开发往复杂了讲,可以有很多内容要学:四大组件(Activity, Broadcast, Content Provider, Service),MVVM,MVP, Jetpack,插件化,组件化,网络请求,Gradle……

2023-05-28 23:05:44 98

原创 统计助手隐私政策

一、引言:您的信任对我们非常重要,我们深知个人信息对您的重要性,我们将按照法律法规的要求,基于您的授权,合理、必要、限制地使用您的个人信息。您应认真阅读,充分理解并授权后再使用本软件。二、定义:统计助手:指统计助手向用户提供服务的产品载体(包括并不限于APP/网站/公众号等)。统计助手服务提供者:个人开发者刘伟。三、我们将如何收集和使用您的个人信息:我们收集您的信息主要用于改善我们的服务,我们收集的个人信息主要有以下几种:1.我们通过软件运行日志,记录程序的运行状态及崩溃。如果发生运行错误.

2021-12-06 22:06:54 982

原创 EventBus源码分析

EventBus是一款常用的事件通知框架。通过发布订阅方式可以便捷高效地传递数据。接下来,按照EventBus使用的四个步骤来分析EventBus的源码:1.初始化:EventBus的初始化是一个典型的单例模式,采用的是懒汉式的双重检查的单例写法。一般不用单独写初始化的代码,使用EventBus做其他操作,比如注册监听事件,调用EventBus.getDefault().register(subcriber)时,在单例模式的getDefault()方法中发现没有初始化,就会自动初始化。/*..

2021-09-08 07:47:49 157

原创 github actions实现Android持续集成

持续集成(Continuous Integration)在很多单位都有现成的系统,但是作为一名工程师,我们还是要了解其原理,可以自己尝试做一下。经过本人的尝试,发现功能并不复杂。这里把持续集成实践经验总结与大家分享。持续集成用的比较多的是jenkins。后来在网上搜索发现github也有这个功能,就想着用github来实现。github功能的确十分强大,我们平时用到的github功能主要是托管代码等很小一部分功能。本文持续集成android项目实现的功能主要有以下两个:1.在有新提交时自动编译打包。

2021-08-17 09:12:37 273

原创 记一次解决Android Studio编译速度过慢(inconsistent location报错)

17年12000买的mac,最近编译一个简单的程序要十几分钟,而且过程中还一直风扇嗡嗡响。心里想是不是要换个电脑了?可是我最近没钱换啊啊。写几行代码想运行看个结果就等十几分钟半小时。想着这也不是个办法,就把各种记得不记得的方式都给用上,同时百度一通,一顿操作猛如虎。把各种jvm的内存都调大,然后把默认在AS里面点击▶️按钮运行的方式也改成了在终端里用全局的gradle命令去编译。发现报了如下log。Observed package id 'tools' in inconsistent loca.

2021-07-14 17:27:15 816

原创 RecyclerView实现可拖拽的gridview

RecyclerView功能强大,而且性能优秀。RecyclerView实现了控件的复用机制。RecyclerView可以实现多种布局,比如类似于Listview或者GridView的布局都可以实现。    本文就来实现类似于Gridview的布局并实现拖拽功能。  布局中添加recyclerviewlayout manager选择GridLayoutManager以上即可...

2018-12-23 19:45:32 658

原创 是什么让你走上了编程的不归路?

十几年前,我还在上高二的时候,参加了一次学校举办的高考动员会。在会上,学校请来了一个已经上大学的学长。学长说他是学计算机的,说计算机这行辛苦一点,但是挣的钱多,高薪。我听了感觉很心动,哇,有钱。而且当时觉得懂计算机的人很神秘,很酷,就选择了计算机。后来本科毕业后,选择了读研。到现在已经研究生毕业四年了,一直从事的都是程序员的工作。有时候觉得工作还挺辛苦的,有时候也会因为自己开发的功能感到有成就感。...

2018-09-15 09:24:33 275

原创 工厂模式简介

工厂模式集中封装了对象的创建,使得要更换对象时,不需要做大的改动就能实现。构造方法集中,对外隐藏了具体的构造方法,构造方法改动时更容易,便于代码维护。如果没有将构造函数集中到创建工厂里,代码里很多地方都写了某一个对象的创建,修改创建方法的时候就会修改很多处。耦合度过高,不易维护。工厂模式分为简单工厂模式和工厂方法模式。简单工厂模式        通过逻辑分支来判断要创建的对象,使用简单...

2018-07-29 10:29:48 345 1

原创 ListView头部的显示和隐藏

将头部布局添加到listview的headview中。例如:mListView.addHeaderView(mHeadView);初始化时隐藏头部:mHeadView.setPadding(0, -mHeadHeight,0,0);给listview设置onTouchListener事件:mListView.setOnTouchListener(this);在on...

2018-07-18 22:45:07 4059

原创 Android环形进度条

进度条是我们平时开发过程中经常使用的。本文来介绍一下动态环境进度条的实现方法。自定义CustomView,继承自DynamicCircle。package com.gucheng.dynamiccircle;import android.content.Context;import android.graphics.Canvas;import android.graphics.Color;...

2018-04-07 11:23:30 824

原创 设计模式之单例模式

单例模式是常用的设计模式之一。单例模式是指在程序运行过程中,在一定范围内只能有一个实例。这在程序设计中很常见。比如在

2018-03-31 00:06:38 155

原创 计算平均时间

最近做了一个小项目,需要计算平均时间。平均时间该怎么算呢?这里精确到分钟,其他的可以类推。例如,8:40和7:50怎么通过公式来计算出他们的平均时间呢?如果你用(8.4+7.5)/2=7.95这么算出来的时间是不对的。因为我们知道40分钟换算成小时并不是0.4小时,50分钟换算成小时也并不是0.5小时。因为时间不是十进制的。对于多天里面的平均时间的计算,可以将分钟换算成小时。比如说40除以

2017-11-13 12:02:00 17525

原创 mac常用快捷键总结

1.截图截取全屏:快捷键(Shift+Command+3)直接按“Shift+Command+3“快捷键组合,即可截取电脑全屏,图片自动保存在桌面。截图窗口:快捷键(Shift+Command+4,然后按空格键)▲直接按“Shift+Command+4“快捷键组合,会出现十字架的坐标图标;▲将此坐标图标移动到需要截取的窗口上,然后按空

2017-10-29 10:47:42 309

原创 将本地代码托管到github

登陆github账号,没有的话先注册一个。在github上选择new reposty.接下来,github自动就会给出如下提示:                  我们假设本地还没有仓库。以mac为例,假设本地还没有建立仓库。在Terminal中进入到代码目录,输入git init,初始化代码仓库。输入"git add . "将本地的所有代码添加到暂存区。git commit -m "first ...

2017-10-24 22:35:26 706

原创 git常用命令

1.git add将代码文件加入暂存区。2.git commit -m "本次修改内容"提交代码。不过此时代码还在本地,没有推送到服务器。3.git push -u推送到服务器

2017-10-11 21:13:07 281

原创 EventBus使用入门——像使用handler那样使用EventBus

EventBus字面意思是事件总线,可以用于Activity之间,线程之间传递消息。EventBus使用起来十分简单,又达到了项目中类与类之间解耦的效果。EventBus可以看做是对Handler和Broadcast的优化。EventBus使用步骤总结如下:

2017-10-02 22:44:37 514

原创 使用mac连接安卓手机adb

花了12000大洋买了一款2017新式mac。电脑外观十分漂亮,速度也很快,不过有些地方和windows差别很大,真的用起来不是很适应。我是想要用这台电脑来做Android开发,那么这样一定要连接adb调试了。下面我来简单说说遇到的那些坑和解决办法。1.2017新款Macbook pro没有usb接口      我把整个电脑翻了个遍,只找到了两个口,后来查了一下发现两个都是 thu

2017-08-24 16:34:56 1041

原创 微信抢红包插件与Android辅助功能

逢年过节大家都少不了发微信红包,通过微信红包来表达祝福。同时,微信还有拼手气群红包。各种群好友群,亲戚群,工作群逢年过节常常会有红包可抢。抢红包的口诀是:“网速要好,手速要快”。抢到红包固然欣喜,抢不到红包的失落和遗憾的感觉却让人非常不爽。有时等红包等了很久,明明看到了一点开就被抢完。还有人等了很久,刚花了几分钟时间去做其他事,就有人发红包。损失了一个亿啊有木有……自从有了微信红包插件,再也不用担

2017-06-04 14:04:16 6700 10

原创 使用wamp搭建本地服务器及本地服务器的访问

在学习Android开发网络知识的部分,为了便于调试,需要自己搭建服务器。没有必要从网络上花钱购买服务器,这里我们可以自己在电脑上搭建本地服务器。只要电脑和手机连接到了同一个局域网,比如都连接同一个家里的路由器。就可以通过手机来访问本地服务器了。使用wamp可以非常快速方便地搭建服务器,wamp集成了Apache服务器而且安装起来非常地简单方便。WAMP是Windows环境下的Apache服务器,M

2017-04-29 10:48:55 10695

原创 手把手教你实现Android AIDL跨进程通信

Android中通过Binder机制实现跨进程通讯,Binder机制比较典型的例子就是AIDL Service。AIDL跨进程通讯的实现在Android中是比较重要的知识点,同时也有一定的难度。本文通过一个具体简单的栗子来讲述如何实现跨进程通讯。Android跨进程通讯,由四大部分组成,分别是Client、Server、Service Manager和Binder驱动程序。其中Service Ma

2017-04-04 22:28:57 495 1

原创 Android面试常见问题

Android面试常见问题   本人也算是面试经验丰富,经历了很多场面试。面试过程中,常常会重复性地遇到一些问题。这里把常见问题汇总下来,希望能对大家有所帮助。   1.常用的布局有哪些?   2.Activity启动模式?   3.handler如何使用?在同一个线程中可以实例化多个handler么?简单介绍handler、looper、message queue之间的关系。在子线程中实例

2017-03-29 21:41:00 810

原创 2017年新年小目标

1. 在CSDN上完成12篇原创文档,博客积分增长到1500分。CSDN积分太少了连排名都没有,还是想增加一下自己的影响力。有排名了也会比较有成就感。2. 上传两个自己开发的apk到应用市场。自己平时会开发一些小程序自己用,也是一个学习提高的过程。如果能通过写小程序发布一些广告,挣一些小钱,会极大提高自己继续写程序的动力。毕竟光靠工资收入太少了。想想现在物价房价上涨的速度,再想

2017-01-23 21:58:11 874 2

原创 安装Android Studio遇到的那些坑及解决办法

1.代理设置2.编译设置3.JDK 设置

2017-01-08 21:29:33 21837

原创 Android N系统CTS verifier中cross profile相关测试项fail的解决方案

测试环境简介:CTS verifier apk是对应Android N的版本。系统是Android N。测试项名称:camera support cross profile video capture (without extra output path)测试过程:点击该项测试时,会调用到手机中安装的相机拍摄视频。拍摄视频后返回到CTS verifier apk的界面进行视频播放。

2016-11-16 21:48:14 2875

原创 Android 存储空间简介及不同存储路径获取

1.存储空间简介Android存储空间主要分为三个部分:内存、机身存储和SD卡存储。内存用于程序计算,通常空间小,速度快而造价高。机身存储和SD卡存储可以用于保存文件,如照片、视频等。机身存储和SD卡存储不能用于程序计算,但是可以在断电时保存文件,空间大且造价小。所以内存和机身存储、SD卡存储的任务是不同的。在支持扩展存储空间的手机上,如果机身自带存储空间不够,可以插入SD卡来扩大空间。类比于

2016-11-07 22:25:51 645

原创 宇龙酷派笔试题 女嘉宾调查问卷

假设有n位女嘉宾需要填调查问卷,一共有三种调查问卷A、B、C。相邻两位女嘉宾的问卷不能相同。让你用程序把所有可能的组合输出。程序思想是将女嘉宾所有的组合当成是一个数,比如说有三个女嘉宾,所有组合是从数000到数222。判断每种组合是否满足条件,满足条件则输出,不满足不输出遍历每种组合,第一种是AAB,AAA直接不考虑,每判断一次末位加一,到‘C’要进位。到下一次从头到尾是‘AAA’

2013-12-02 15:15:33 758

原创 华为机试操作系统任务数组

操作系统任务调度问题。操作系统任务分为系统任务和用户任务两种。其中,系统任务的优先级 50,用户任务的优先级 >= 50且 255。优先级大于255的为非法任务,应予以剔除。现有一任务队列task[],长度为n,task中的元素值表示任务的优先级,数值越小,优先级越高。函数scheduler实现如下功能,将task[] 中的任务按照系统任务、用户任务依次存放到 system_task[] 数组和 

2013-12-02 15:15:30 637

原创 华为机试手机号码判断

手机号码合法性判断(20分)问题描述:我国大陆运营商的手机号码标准格式为:国家码+手机号码,例如:8613912345678。特点如下: 1、  长度13位;2、  以86的国家码打头;3、  手机号码的每一位都是数字。 请实现手机号码合法性判断的函数要求:1)  如果手机号码合法,返回0;2) 如果手机号码长度不合法,返回13) 如果手机号码中包含非数字的字符,返

2013-12-02 15:15:28 965

原创 华为机试求两个数组的和差

第二题:求两个数组的和差   就是去掉两个数组中相同的元素 然后将两个数组中的元素存放在一个新的数组中  切数组A中元素要在B数组元素之前#includeusing namespace std;int num_equal(int a1[],int len1,int num){int i,j=0;for(i=0;i{if(num==a1[i]){j=1;break;}}r

2013-12-02 15:15:26 669

原创 华为机试回文数组

#includeusing namespace std;int huiwen(int len,char a[]){if(0==len)return 0;int i=0,j=len-1,flag=1;while(i{if(a[i++]!=a[j--])flag=0;}if(flag){coutreturn 1;}else {coutreturn 0;}}

2013-12-02 15:15:24 623

原创 华为机试简单四则运算

简单四则运算• 问题描述: 输入一个只包含个位数字的简单四则运算表达式字符串,计算该表达式的值注: 1、表达式只含 +, -, *, / 四则运算符,不含括号2、表达式数值只包含个位整数(0-9),且不会出现0作为除数的情况3、要考虑加减乘除按通常四则运算规定的计算优先级4、除法用整数除法,即仅保留除法运算结果的整数部分。比如8/3=2。输入表达式保证无0作为除数情况发生5、输入字

2013-12-02 15:15:22 1284

原创 华为机试数组比较

数组比较(20分)• 问题描述: 比较两个数组,要求从数组最后一个元素开始逐个元素向前比较,如果2个数组长度不等,则只比较较短长度数组个数元素。请编程实现上述比较,并返回比较中发现的不相等元素的个数比如:数组{1,3,5}和数组{77,21,1,3,5}按题述要求比较,不相等元素个数为0数组{1,3,5}和数组{77,21,1,3,5,7}按题述要求比较,不相等元素个数为3• 要求实现函数:

2013-12-02 15:15:20 592

原创 华为机试约瑟夫环

约瑟夫环是一个数学的应用问题:已知n个人(以编号1,2,3...n分别表示)围坐在一张圆桌周围。从编号为k的人开始报数,数到m的那个人出列;他的下一个人又从1开始报数,数到m的那个人又出列;依此规律重复下去,直到圆桌周围的人全部出列。//用循环链表实现 #includeusing namespace std;typedef struct Node{int data;Node* ne

2013-12-02 15:15:17 631

原创 华为机试题 扑克牌判断

一副牌中发五张扑克牌给你:让你判断数字的组成:有以下几种情况:1:四条:即四张一样数值的牌(牌均不论花色)2:三条带一对3:三条带两张不相同数值的牌4:两对5:顺子  包括 10,J,Q,K,A6:什么都不是7:只有一对#includeusing namespace std;voidsort(int a[]) //冒泡排序{int temp;for(int i=0;

2013-12-02 15:15:15 626

原创 problem37

37编写一个递归函数:将一个整数转换为相应的字符串并输出,函数原型可声明为:void int2str(int number)#includevoidint2str(int number){if(number==0)return;inta;charb;a=number;   b=a+'0';//加字符0可以将数字转换成字母int2str(number/10);cou

2013-12-02 15:15:13 779 1

原创 problem36

36.  正读和反读都一样的数称为回文数。编写程序输入一个整数max_num,输出从0到max_num中用二进制表示和十进制表示都是回文数的整数。定义一个函数is_circle_num()判断一个数(number)在某个进制(radius)下是否为回文数。例如,整数313就是该程序输出的一个数,因为它的二进制表示为10011001。#includeusing namespace std;

2013-12-02 15:15:11 775

原创 problem35

35     打印如下图形A  B  C  D   EB  C  D  E   AC  D  E  A   BD  E  A  B   CE  A  B  C   D #includeusing namespacestd;void main(){int i,j;chara='A',b;//每次循环输出的第一个字母为bfor

2013-12-02 15:15:09 687 2

原创 problem34

打印下面图形。                                 1                             1  3   1                         1  3  5  3   1                     1  3  5  7  5  3   1                 1  3 

2013-12-02 15:15:07 556

获取SD卡路径及手机存储路径

Android小程序,可以测试手机是否有SD卡,并获取SD卡路径和手机存储路径显示。

2016-11-09

华为机试五张扑克牌判断

给你五张扑克,判断是四带一还是三带对,三带两张不同牌等。经过本人测试通过

2013-09-13

空空如也

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

TA关注的人

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