自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

许佳佳的博客

热爱生活,热爱技术,热爱互联网,热爱祖国。

  • 博客(4)
  • 资源 (60)
  • 收藏
  • 关注

原创 【StudyWebView】android webview架构的一种新思路

github项目地址https://github.com/Double2hao/StudyWebviewStudyWebView架构StudyRouter架构如上图,主要几个模块的功能如下:webview客户端的webview,可以是view,也可以是界面。H5运行于webview上,webview是H5与客户端交互的媒介。BridgesBridges处于业务进程。H5通过单一的通道来调用客户端的功能,由于客户端部分业务会处于业务进程,因此webview会将需要调用业务进程的逻辑封装成b

2021-04-06 20:53:19 87

原创 Android Input子系统为什么要使用socket,而不是binder?

概述此文出自笔者回答的一个知乎问题,原问题:Android Input子系统为什么要使用socket,而不是binder?Android Input子系统为什么要使用socket,而不是binder?近期正好学习到Binder与input系统相关的知识,觉得这个问题非常有意思。使用socket而不使用binder的原因非常多,笔者仅根据自己的认知回答一下,一定会有考虑不周的地方,有想法的读者可以评论补充或者交流。如果使用binder,会有哪些问题?binder与socket相比太耗资源了。

2021-04-27 21:03:00 111

原创 Android Window系列(一)- window与decorview

概述window是android中非常常见的一个概念。Activity、Dialog、Toast这些常用的知识点都是和window密不可分的。因此,笔者整理了下window相关的知识,期望能对需要的读者有所帮助。window官方描述Window源码中对window的描述如下:/** * Abstract base class for a top-level window look and behavior policy. An * instance of this class should

2021-04-25 07:50:02 3090 6

原创 android gradle 多渠道打包小结

概述多渠道对于android来说是一个比较常见的概念,举几个常见的用法:根据不同的渠道使用不同的资源根据不同的渠道使用不同的依赖根据不同的渠道作不同的数据统计根据不同的渠道,游戏app中对应不同的服务区github地址本文项目基于笔者自己写的demo,对其有兴趣的读者可以自行下载:https://github.com/Double2hao/MultiChannelTestandroid studio的多渠道如果要使用多渠道,仅需要在该项目的build.gradle文件中增加以下代码:

2021-04-08 20:57:15 2912 3

最简易的网络框架封装(新手可看)

网络通信在Android上的重要性就不多说了。 demo就是获取到“https://www.baidu.com/”的HTML代码后显示在textview中。 如果仅仅实现这个功能需要的java代码绝对在10行以下,但是本片主要是讲一下简易框架的封装。 封装目的: 1、在同一个项目中,我们要执行网络操作可定不想要每次都编写一遍HTTP请求的代码。通常情况我们都会将这些网络操作提取到一个公共的类里面,并提供一个静态方法,

2016-09-07

android 后台定时提醒(Service,AlarmManager的使用)

笔者最近将工具书上Service的有关内容都学习了一下,于是打算做一个小应用来练一下手了。 考虑到自己每次在敲代码或者打游戏的时候总是会不注意时间,一不留神就对着电脑连续3个小时以上,对眼睛的伤害还是挺大的,重度近视了可是会遗传给将来的孩子的呀,可能老婆都跟别人跑了。 于是,为了保护眼睛,笔者便做了个如下的应用: (界面为了便于让新手理解,所以做的比较简单,并且没有设置背景图片,也没有设置APP桌面图片,有心的读者完全可以放上自己或者对象的图片,然后做的比较个人化)

2015-11-08

android SharedPreference的简单使用(登陆界面记住密码)

SharedPreference方面的内容还算是比较简单易懂的,在此还是主要贴上效果与代码,最后也是附上源码。

2015-10-20

android socket聊天室——也不仅仅是聊天室

#前提概要 笔者很久之前其实就已经学习过了socket,当然也是用socket做过了聊天室,但是觉得此知识点比较一般,并无特别难的技术点,于是也并未深究。 然而近期一个项目中对socket的使用却让笔者感觉socket强大无比,可以实现诸多功能。 #个人Socket体验 项目主要有关智能家居,需要实现多台手机同时对灯进行操作(开或者关),主要需要实现以下几点: 1、进入界面时获取所有灯的状态。 2、一台手机改变了灯的状态,其他的手机上可以有所显示。 3、硬件上改变了灯的状态(手动开关灯),所有手机上要有所显示。 此功能如果使用HTTP读取的方式实现就不太合适了。一方面客户端与服务器读取文件的同步性难以保证,即使保证了,也需要浪费大量性能;另一方面,类似笔者的这种项目功能服务器和客户端交互比较频繁,对“即时性”要求也比较高,用HTTP不仅性能消耗太大,而且难以保证“即时性”。 但是使用Socket就很容易实现了,主要逻辑如下: 1、每次进入界面与服务器建立Socket连接,并得到此时灯的状态 2、每次需要对灯进行操作的时候建立一个线程把灯的状态传递给服务器,服务器接收到之后,把该状态传递给每一个此时与服务器建立连接的客户端。

2016-11-21

学生信息管理系统2222

#设计目的 1、网上很少有关于SQLite简单综合项目的测试APP。 2、把自己所学的部分UI综合一下,希望能给新手一些帮助。 #涉及知识点 1、包括SQLite的增删查找等功能。 2、RecyclerView展示 3、SharedPreference保存密码,以及判别是否是第一次安装APP。(如果是第一次就录入测试数据) 4、简单的Menu操作

2016-09-23

android viewpager+fragment做主界面(超容易理解的demo)

笔者之前已经写过了关于viewpager的demo,但是之前是通过将Activity转化为view,然后放入viewpager实现的,具体操作中有时候还是不如fragment方便。 之前的viewpager demo的地址:http://blog.csdn.net/double2hao/article/details/50183567 主要实现的功能与之前的一样: 1、滑动的同时改变标题栏 2、点击标题栏的同时滑动 3、点击fragment中的button能有toast提示

2016-01-03

android 自定义AlertDialog 与Activity相互传递数据

主要实现功能: 1、从Activity的TextView中获取字符串设置到AlertDialog的TextView和EditText中 2、将AlertDialog的EditText中的值设置到Activity的TextView中 新手在自定义AlertDialog上的疑问笔者猜测主要有两个: 1、自定义的layout如何放到AlertDialog中? 解答: 获取到layout的view之后,直接调用AlertDialog.Builder的setView方法即可。 2、如何对自定义AlertDialog中的控件进行操作? 解答: 于fragment中的操作类似,首先要获取该layout的

2016-01-20

android 用java动态设置布局(增添删除修改布局)

XML对开发者来说十分的方便,不仅使用起来简单,而且能够及时调试,修改界面之后马上能看到效果,Java不具有这个优势。但是java却可以动态对布局进行操作,这是xml所做不到的。笔者认为,新手索要掌握的java动态设置布局主要有两点,一方面是对布局的属性进行修改,另一方面是增添和删除控件。

2016-02-05

为RecyclerView添加分页加载(上拉加载更多)功能

上一篇文章已经介绍了如何为RecyclerView添加FootView,在此基础上,要添加分页加载的功能其实已经很简单了。 上一篇文章地址:[为RecyclerView添加FootView和HeadView](http://blog.csdn.net/double2hao/article/details/52787975)

2016-10-11

学生宿舍管理系统 学生宿舍管理系统

【题目】学生宿舍管理系统 考查点:线性结构、文件操作 注意:必须使用文件存储数据,不得使用数据库管理系统。 任务:通过此系统可以实现如下功能: 录入: 可以录入宿舍情况,包括宿舍号、可容纳学生数、已容纳学生数、男生/女生宿舍等信息; 可以录入学生住宿情况,包括学号、姓名、性别、宿舍号等信息。 其他信息可以自行设计。 分配宿舍:为每一个学生分配入一个未住满的宿舍。能否提供一个智能分配算法?推荐选择?批量分配?鼓励创新。 调换宿舍:实现一个学生调换宿舍操作以及两个同性学生互换宿

2016-03-04

android Jsoup获取网站内容(实例为新闻标题获取),android网络必学

近期做简单的新闻客户端界面使用到了Jsoup获取,使用起来特别方便,这也是被我一个学长称为学android网络必学的一个东西,在此也是分享一下自己近期所学。

2015-10-04

残缺棋盘 android实现颜色填充

原“残缺棋盘”题目: 残缺棋盘是一个2^k*2^个方格的棋盘,其中恰有1个方格残缺。图中给出,其中残缺部分用阴影表示。 这样的棋盘称为"三格板",残缺棋盘问题就是用这四种三格板覆盖更大的残缺棋盘。再次覆盖中要求: (1)两个三格板不能重复。 (2)三格板不能覆盖残缺棋盘方格,但必须覆盖到其他所有的方格。 添加要求: 使用图形化界面实现颜色填充残缺棋盘

2016-05-17

onMeasure简单方法 完美解决ListView与ScollView!

近期做项目碰到ScrollView与Listview冲突的情况,查看了网上一些解决listview和scollView的冲突的方法,最终选择了重写onMeasure的方法来解决这个问题。 在此对各种方法做一个个人的总结评价。 主要的方法有四种: 1、手动设置ListView高度(比如把高度设置为200dp) 评价:特别简单无脑,但是大大提高了代码的耦合性,比较适合“图方便”的新手。 2、使用单个ListView的addHeaderView()方法(给listview设置顶部固定的一个view) 评价:比较简便的方法,但是如果顶部布局需要监听滑动事件,也不可取。 3、使用LinearLayout取代ListView(重写LinearLayout) 评价:完全可行,但是让一个LinearLayout来实现Listview的功能真的觉得好奇怪啊。 4、重写ListView的onMeasure() 评价:只需要写几行代码,轻松解决冲突问题。不仅降低代码耦合性,而且简单。唯一的缺点,可能就是理解需要花比较多的时间。

2016-05-22

实验一 直接法解线性方程组(android)

一、实验目的 掌握Guass列选主消去法,三角分解法解线性方程。 二、实验内容 分别写出Guass列选主元消去法,三角分解法的算法,编写程序上机调试出结果,要求所编程序适用于任何线性方程组问题,即能解决这一类问题,而不是某一个问题。 实验中以下列数据验证程序的正确性 1、Guass列选主元消去法 [2.5 2.3 -5.1][x1] [3.7] [5.3 9.6 1.5][x2]=[3.8] [8.1 1.7 -4.3][x3] [5.5] 2、Doolittle三角分解法 [ 2 10 0 -3 ] [-3 -4 -12 13] [ 1 2 3 -4 ] [ 4 14 9 -13]

2016-04-14

Android应用开发-护眼提醒

设计初衷: 在学习《第一行代码》的服务那章时,涉及到了alarmmanager的内容。然后笔者当时正好在关注“程序员如何保护眼睛”的问题。 于是便自己做了一个demo,用于每一个小时左右提醒一次,后来周围的朋友看到我有这个定时提醒,觉得比较新鲜,便说你以这个创意单独做一个APP吧。 鉴于软件的个性化,我在此款应用中也是加入了自己设置图片,设置提醒文字等功能。朋友说个性化振动是一个亮点。

2016-01-13

图片文字轮播效果(图片和文字自动滚动)

轮播是类似知乎日报上的一个轮播效果,如下图。

2015-10-04

android 通知的使用小实例(振动,灯光,声音)

android 通知的使用小实例(振动,灯光,声音)

2015-10-26

android Fragment与Activity交互,互相发数据(附图详解)

笔者近期看官方training,发现了很多有用又好玩的知识。其中,fragment与Activity通信就是一个。 fragment与Activity通信主要是两点: 1、fragment传递信息给Activity 此点是通过在fragment中定义接口与Activity共享数据。 2、Activity传递信息给fragment 此点主要是通过fragment的getArgument()和setArgument()两个函数传递bundle来传递。

2016-03-26

FragmentTransaction使用全解

#前言 之前已经写过用Fragment做主界面以及Fragment与Activity通信的文章。两篇文章如下: [ndroid viewpager+fragment做主界面(超容易理解的demo!)](http://blog.csdn.net/double2hao/article/details/50450377) [android Fragment与Activity交互,互相发数据(附图详解)](http://blog.csdn.net/double2hao/article/details/50983820) 对于Fragment还剩FragmentTransaction没有具体讲到,此篇文章就讲一下FragmentTransaction的主要用法,也是对之前的回顾。

2017-03-03

android 记事本demo(listview与SQLite)

android记事本的demo在网上一搜一大堆,但是大神写的demo往往功能太多导致新手难以着手,很难啃得动;而一些新手写的demo又往往是东拼西凑,代码很多都是copy的别人的,直接放在项目里面用,也不知道代码有什么作用。往往代码特别丑,重复性的代码也比较多。 笔者近期学到此处,自己理解之后也还是打算写个demo供新手学习一下。代码说不上优雅,但在笔者看来已经尽力去让人容易理解了。 为了便于新手学习,在此也是罗列一下涉及的知识点: 1、SQLite的基本使用,增删查改 2、listview,adapeter的基本使用 3、activity生命周期 4、intent、bundle传递参数 5、AlertDialog的基本使用

2015-12-13

ASP.NET 个人信息注册页面,并跳转显示

#题目 新建一个MVC项目,利用HTML、CSS、JS、jQuery、Ajax、jQuery UI等技术设计一个个人信息注册页面。当点击“提交”按钮时,跳转到新的页面显示录入信息。 **基本要求:** 用户名为6-10个小写字母(小写使用正则式验证,且用户名不能为“wustzz” –用Ajax技术来检测);密码为6位数字,确认密码不一致时有提示;籍贯使用级联(jquery实现);Email必须符合Email格式;手机是11位(假设规定以1569开头);出生年月使用jQuery UI日历组件设置;图片要传递到新的页面显示。

2016-11-23

android nextFocus使用详解

近期在学习android官方sample,学习到nextFocus的时候花了一些时间,并且也是觉得比较有用,所以拿出来分享。 效果:

2016-02-26

android XML动画初步解析(activity界面之间跳转demo)

上一篇文章android 简单地设置Activity界面的跳转动画讲了简单的activity界面之间的跳转,并且使用的是android内置的一些动画,此章就小提一下如何自己写一些动画来进行跳转。 按例,还是上一下效果:

2016-01-22

viewpager做主界面(可点击可滑动,超容易理解的demo)

笔者之前已经做过了一个使用viewpgaer轮播效果的博客,但是viewpager本身也是深受androider的喜爱,如今基本每个app都会用到相关的功能,本篇文章也是讲一下用viewpager做主界面的用法。 主要功能: 1、滑动的同时改变标题栏 2、点击标题栏的同时滑动

2015-12-05

android短信加密(发送加密短信,解密本地短信)

短信加密此类功能由于新手学习的需求量较小,所以在网上很少有一些简单的demo供新手参考。笔者做到此处也是花了比较多的时间自我构思,具体的过程也是不过多描述了,讲一下demo的内容。(源码在文章结尾) demo功能: 1、可以发送短信并且加密(通过改变string中的char) 2、能够查看手机中的短信 3、能够给收到的加密短信解密。 涉及到的知识点: 1、intent bundle传递 2、ContentResolver获取手机短信 3、listveiw与simpleAdapter 4、发送短信以及为发送短信设置要监听的广播 遇到的问题: 1、发送短信字符过长会导致发送失败 解决方法:设置

2015-12-25

实验四 常微分方程的数值解

实验一博客地址:http://blog.csdn.net/double2hao/article/details/51152843 实验二博客地址:http://blog.csdn.net/double2hao/article/details/51217356 实验三博客地址:http://blog.csdn.net/double2hao/article/details/51344145 【实验内容】 分别写出改进欧拉法与四阶龙格库塔求解的算法,编写成熟上机调试出结果,要求所编程序适用于任何一阶常微分方程的数值解问题,即能解决这一类问题,而不是某一个问题。 试验中以下列数据验证程序的正确性。 求 y'=-xy^2 y(0)=2 (0<=x<=5) 步长h=0.25

2016-05-11

android修改控件外观(使用drawable资源)

使用drawable资源这方面是比较容易的,笔者学习并没有花太多时间,但是却是受益匪浅。

2015-12-03

android Fragment与Activity互相发数据(附图详解)

笔者近期看官方training,发现了很多有用又好玩的知识。其中,fragment与Activity通信就是一个。 fragment与Activity通信主要是两点: 1、fragment传递信息给Activity 此点是通过在fragment中定义接口与Activity共享数据。 2、Activity传递信息给fragment 此点主要是通过fragment的getArgument()和setArgument()两个函数传递bundle来传递。

2016-03-25

android ContentResolver的使用(获取和修改联系人信息demo)

ContentProvider和ContentResolver永远是相对的,本章主要是讲ContentResolver的使用,当然是在android系统提供ContentProvider的情况下。 ContentProvider与ContentResolver概念上的东西的就不讲了,主要讲一下ContentResolver的作用以及使用方法。 ContentResolver的作用: 1、可以通过ContentResolver来获取android内部的数据,比如联系人信息、系统的多媒体信息、短信信息等等。 2、可以获取提供了ContentProvider的应用的数据。 ContentResolver的使用方法:(参考《疯狂Android讲义第三版》446面) 1、调用Context的getContentResolver()获取ContentResolver对象。 2、根据需要调用ContentResolver的insert(),delete(),updata(),query方法操作数据库。 3、为了操作系统提供的ContentResolver,需要了解该ContentProvider的Uri,以及该ContentProvider所操作的数据列的列名,可以通过查阅Android官方文档来获取这些信息。 笔者个人意见: 1、建议新手读者在学完SqLite之后再来学习ContentResolver的内容,ContentResolver的insert(),delete(),updata(),query四个操作数据库的方法均与SQLite中的相同。 2、ContentProvider的Uri,以及该ContentProvider所操作的数据列的列名都不需要死记硬背,需要用的时候查阅一下即可,新手此处最好能自己全部写一下,对ContentResolver的使用有一个总体的了解。

2016-04-07

实验三 数值积分(android)

实验二博客地址:http://blog.csdn.net/double2hao/article/details/51217356 实验一博客地址:http://blog.csdn.net/double2hao/article/details/51152843 一、实验内容 分别写出变步长梯形法和romberge法计算定积分的算法,编写程序上机调试出结果,要求所编程序适用于任何类型的定积分,即能解决这一类问题,而不是某一个问题。 试验中以下列数据验证程序的正确性。 求 (sinx)/x的积分,积分区间为[0,1]

2016-05-08

android 实现FlowLayout 流线布局(自定义ViewGroup)

#项目目的 1、深化自定义View的概念 2、将MeasureSpec、View的绘制流程、Layoutparams等分散的知识点整合成一个demo。 #项目灵感 笔者经验也是有限,此文章主要借鉴张鸿洋前辈的博客。 原文地址:http://blog.csdn.net/lmj623565791/article/details/38352503 #项目预览 ![这里写图片描述](http://img.blog.csdn.net/20161018184251886) #主要涉及知识点以及相关链接 ###1、MeasureSpec [快速理解android View的测量onMeasure()与MeasureSpec](http://blog.csdn.net/double2hao/article/details/51553703) ###2、Layoutparams以及MarginLayoutParams [Android开发:LayoutParams的用法](http://blog.csdn.net/double2hao/article/details/51438798) [MarginLayoutParams--一个可以在代码中直接设置margin的方法](http://blog.csdn.net/u011374875/article/details/52150471) ###3、View的绘制流程 [Android视图绘制流程完全解析,带你一步步深入了解View(二)](http://blog.csdn.net/guolin_blog/article/details/16330267) ###4、笔者自定View相关文章 [给自定义View添加xml属性](http://blog.csdn.net/double2hao/article/details/52117503) [android 自定义控件(底部icon点击效果)](http://blog.csdn.net/double2hao/article/details/51093896)

2016-10-18

android图片轮播效果,RollViewPager的简单使用

图片轮播算是我们用的比较多的一个功能,我之前也写过类似的文章(http://blog.csdn.net/double2hao/article/details/48896297),但是说实话自己写并不是特别方便,而且往往bug会比较多。而在github上有一些大神专门写了viewpager的轮播框架并且开源,供大家学习参考,这篇博客就教大家如何简单地使用开源框架RollViewPager。 对RollViewPager有兴趣,或者希望更深入学习的可以直接去github下载源码学习:https://github.com/Jude95/RollViewPager

2016-05-06

实验二 插值方法(android)

一、实验内容 分别写出拉格朗日插值法与牛顿插值法的算法,编写程序上机调试出结果,要求所编程序适用于在任何一组插值节点,即能解决这一类问题,而不是某一个问题。 试验中以下列数据验证程序的正确性。 已知下列函数表 X 0.56160 0.56280 0.56401 0.56521 Y 0.82741 0.82659 0.82577 0.82495 求X=0.5635时的函数值。

2016-04-22

给自定义View添加xml属性

笔者之前已经写过了一些自定义View的文章,在此对其也就不从头说起了,如有兴趣的读者可以看一下笔者的前两篇文章。 [android 自定义view的使用(最佳demo——返回标题栏)](http://blog.csdn.net/double2hao/article/details/50209249) [android 自定义控件(底部icon点击效果)](http://blog.csdn.net/double2hao/article/details/51093896) 笔者之前的文章中仅仅介绍了如何使用自定义View以及为什么要使用自定义View等等,但是在实际操作中,我们还是希望自定义View之后,直接能够在xml中就对其进行操作,如下图:

2016-08-04

RecyclerView超简单demo(局部更新取代ListView)

回顾上一篇写RecyclerView的博客(android RecyclerView布局真的只是那么简单!)。笔者比较具体地讲了一下自己对RecyclerView的理解,但是可能知识点比较杂乱,部分新手读者还是无法领会其意。正好笔者最近学习到“局部更新”的知识点,在此就再附上一个更简单的demo了。 为何要实现局部更新? 很简单,就是要提高效率。很多时候在一个列表中,我们只会修改一条item,如果直接使用notifyDataSetChanged(),未免显得有点浪费资源了。 如何实现的局部更新? 在RecyclerView出来之前,ListView如果要实现局部更新,首先要自定义一个ViewHolder,其次要自己写一个局部更新的函数。整体的流程算不上复杂,但是确实不是很方便,开发者们都会不由得想,为什么不直接官方就把这个写好啊。(ListView局部更新的例子在网上有很多,笔者在此处就不多加阐述了。) 然而,RecyclerView的出现就是帮了开发者们一个大忙了,RecyclerView.Adapter自带局部更新的函数,不需要自己写。

2016-06-08

完全理解android事件分发机制

#前言 之前笔者其实已经写过事件分发机制的文章:[快速理解android事件传递拦截机制概念](http://blog.csdn.net/double2hao/article/details/51541061) 但是,现在看来其实更像是一篇知识概括,多出可能未讲清楚,于是打算重写事件分发,用一篇文章大致讲清楚。 首先,形式上笔者最先思考的是使用源码,此者能从原理上讲解分发机制,比起侃侃而谈好得多。但是源码的复杂往往会让新手产生畏惧难以理解,于是笔者最终还是打算使用实例log来让读者理解android事件分发。 #重要函数 笔者此次主要提及最常用的几个函数: (其间区别看源码很容易理解,此处直接给上结果) **onClick():**这个函数是是View提供给我们的OnClickListener这个接口中的函数,在这里可以自定义对点击事件的处理逻辑。会在onTouchEvent()中进行调用。 **onTouch():**这个函数是View提供给我们的OnTouchListener这个接口中的函数,在这里面可以自定义对触摸事件的处理逻辑。 **onTouchEvent():**这个函数是view内部的触摸事件的处理方式,其间包括获取焦点,调用onClick()等等。 **dispatchTouchEvent():**这个是View的事件分发函数,在ViewGroup中进行重写。在View中其间会调用onTouchEvent(),在ViewGroup中其间会调用onInterceptTouchEvent()和onTouchEvent()。 **onInterceptTouchEvent():**这个函数是事件拦截函数,是ViewGroup才有的函数。

2017-01-12

快速入门android AIDL(开启多进程并进行通信)

为何要开启多进程?主要有两种情况: 一、一个应用由于自身需要采用多进程模式来实现。比如播放器之类,如果仅仅在service中运行会影响主线程的响应速度,很可能会造成ANR;如果仅仅在子线程中运行,一旦开启该线程的Activity被杀死后,线程也被杀死,无法实现后台运行效果,更加不合理。而如果在另外一个进程中使用service后台运行,就显得十分恰当了。 二、由于android对单个应用所使用的最大内存做了限制,为了加大一个应用可使用的内存,所以通过多进程来获取多份内存空间。 本篇文章demo重点: 1、开启多进程 2、两个进程之间使用AIDL进行通信

2016-06-10

ASP.NET 电影票信息的增删查改

##题目 1、使用Code First技术创建一个Movie数据模型。 ``` public class Movie { public int ID { get; set; } //电影编号 public string Title { get; set; } //电影名称 public DateTime ReleaseDate { get; set; } //上映时间 public string Genre { get; set; } //电影类型 public decimal Price { get; set; } //电影票价 public string Rating { get; set; } //电影分级 } ``` 2、使用MVC相关技术实现数据的列表显示和新增功能。 3、完成数据的编辑、删除、明细和条件查询等功能。 4、完成如下查询: (1)查询尚未上映电影的信息 (4)查询票价在某个区间的电影信息

2016-12-14

Android单元测试-对Activity的测试

#前提概要 上一篇文章已经介绍了单元测试的作用和简单示例,如果不了解的读者可以先阅读上一篇[ Android单元测试-作用以及简单示例](http://blog.csdn.net/double2hao/article/details/77159380)。 这篇文章主要介绍常见的Activity中的测试。 #对Acitivity的测试 对于Activity,我们大致有两种测试需求: 1、在Activity正常启动后,查看界面布局是否正确,包括View的点击事件等是否正确。 2、需要在Activity启动前完成各种数据的部署,然后查看Activity的效果。 对于这两种需求,笔者分别做了两个示例解说: 1、检测一个布局中的button和TextView是否正确。 2、从网络动态获取String到Activity界面显示,并且这个图片的URL是由Intent传递过来的。

2017-08-14

从零开始写一个简单的ImageLoader框架

从零开始写一个简单的ImageLoader框架

2016-08-12

空空如也

空空如也

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

TA关注的人 TA的粉丝

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