摘要:Cocoa Application开发的是带界面的程序。 OC是完全兼容C语言的,但是C语言里面是不能写OC的东西的。 OC和C的第一个区别,就是源文件的后缀名的区别。OC程序的源文件的后缀名是.m,C程序的源文件的后缀名是.c.
阅读全文
摘要:OC语法中static关键字不能修饰属性,也不能修饰方法,只能修饰方法中的局部变量。static修饰局部变量之后把局部变量变成静态变量。当方法执行完之后这个变量不会被回收。下次再执行这个方法的时候这个变量还在。 self是个指针,在对象方法当中,self指向当前对象。所以可以使用self来显式地访问
阅读全文
摘要:进度条这个东西可以给它创建一个布局。进度条叫ProgressBar. ProgressBar这个就是进度条。 默认的安卓进度条是一个圈圈,一圈一圈转。 之前咱们把一个XML文件转化成一个View对象,用到一个方法inflate()。实际上咱们现在还要用的还是同一个方法。把item这个条目转化成一个V
阅读全文
摘要:多线程下载就搞定了,现在做断点续传。折腾多线程下载和断点续传。实际上断点续传这个原理还是挺简单的,就是找一个东西把它的位置记下来。现在这个东西已经记下来了在这个位置。 如果有日志文件就把这个东西读取出来。读出来之后再根据记录下来的位置去读对应的内容。
阅读全文
摘要:断点续传得把下载到的位置给它记录下来。通过什么记?记在哪里?记在内存里行不行?用迅雷下了蓝光电影,动辄就好几个GB.下了一个GB突然间改早了没网了,这个时候你放在内存里面电脑一关所有的内容就都没有了,下一次还得重来。所以一定得保存到磁盘里,我得搞一个文件,通过这个文件来记录下载的位置。所以第一个就是
阅读全文
摘要:接下来要创建多个线程了。 在服务端这边要通过一个请求头Range,用setRequestProperty给它传一个Range.每一个线程下载的起始位置和结束位置都是不一样的。但是正好是连在一起的。
阅读全文
摘要:接下来得创建多个线程,在多线程里面去创建不同的数据。
阅读全文
摘要:通过安卓的项目向服务端提交参数。用了三种方式,一种是httpUrlConnection,一种是httpClient,还有一种是使用开源项目去提交参数。掌握多线程下载和断点续传的原理。多线程下载可以把一个文件分成多份去下载。使用多线程下载如果你的带宽比较大,可能会突破对线程流量的限制。在服务端可以对每
阅读全文
摘要:图片一旦给它拿下来之后可以给它进行一下缓存。缓存起来了可以给它存成一个文件。缓存成文件之后下一次请求的时候如果缓存还在的话就没有必要联网了。像缓存这些信息并不是说跟这个应用特别重要的,比如说一些配置文件,这些用于缓存目的的这些东西都可以放在cache这个目录下。通过上下文获取到cache目录。
阅读全文
摘要:如果图片的路径错了,可能会走抛出异常这一条路。那就要弹吐司提醒一下用户,弹吐司也是在修改界面。不能在子线程的异常处理那里弹吐司。走到异常里也会有发消息的情况。如果每一个Message拿过来都给它强转成Bitmap它肯定会挂掉。 图片的地址写错了,服务器返回404异常,图片是能返回到。如果图片地址是h
阅读全文
摘要:ActivityThread是不需要程序员去调用的,ActivityThread是你看不到的。整个应用跑起来首先最先执行的就是ActivityThread.ActivityThread有一个main方法.应用一跑起来ActivityThread实际上就是主线程,主线程一上来首先就prepareMai
阅读全文
摘要:跟消息机制相关的API一共有这么几个:①Looper轮询器②MessageQueue消息队列③Handler④Message 消息 这个消息实际上是放在消息队列里。写Handler的时候并没有写跟MessageQueue相关的代码。 消息是放在消息队列里面的,消息队列什么时候把这个消息取出来?实际上
阅读全文
摘要:handle直接翻译叫处理。Handler叫做处理者/助手。 Handler允许你去发送并且处理消息或者说是一个Runnable对象。Handler是跟一个Thread线程对应起来。线程有一个MessageQueue(消息队列)。每一个Handler的实例都和一个单独的线程是一一对应的。在哪一个线程
阅读全文
摘要:如果不使用HAXM,恐怕网页源码查看器无法获取servlet的源码。初步猜测是安卓模拟器运行速度太慢了。如果CPU不支持VT-x的话,HAXM是安装不上的。所以可以先开启VT-x. 可以参考几篇文章https://jingyan.baidu.com/article/ed15cb1b7586011be
阅读全文
摘要:在ScrollView里面放一个Button和TextView程序直接就挂了。 ScrollView它只限制了有几个孩子,没限制有几个孙子。给Button和TextView套上一个爹LinearLayout线性布局
阅读全文
摘要:安卓上面敲127.0.0.1或者是localhost是不行的,安卓上面的localhost/127.0.0.1默认是10.0.2.2.有些第三方的模拟器可能不是这个值。安卓自带的模拟器肯定是没问题的。如果是第三方的模拟器自己练习一下可以搞一个路由器连接一下,让你当前的机器有一个地址。路由还是比较好搞
阅读全文
摘要:java基础班 网络编程应该提过。大学学计算机或者是通信的对这些东西肯定比较熟一些。主机到网络层是跟硬件相关的一些协议了。上层协议得依赖下层的协议。也就是说它们得联合起来共同工作才能够把数据传输出去。应用层要调用传输层的也依赖传输层的,传输层要依赖网络互联层。网络互联层最终要把数据发出去还要依赖最下
阅读全文
摘要:listview是在安卓开发当中很常用的API. 以垂直滚动的列表的方式展示条目的控件。 ListAdapter是一个桥梁,给ListView提供数据的.数据是由适配器来进行提供的.Adapter是数据适配器,数据适配器是提供数据的. 既然ListVew是一个View,那就可以在布局文件里面声明这样
阅读全文
摘要:如果想操作多个数据库就不要把数据库的名字写死了 把"itheima.db"用String name代替而不是写死了就可以操作多个数据库了.如果写死的话拿到的SQLiteDatabase实际上操作的都是同一个数据库就是这个itheima.db.当数据库文件itheima.db第一次创建的时候,它会走o
阅读全文
摘要:类似于java的File file = new File();只是声明这个东西,但是文件还并没有真正的被创建出来。那么怎么可以创建出一个数据库呢? 获得一个可读的数据库。 获得一个可写的数据库。 还是getReadableDatabase()更靠谱一些,当磁盘满了的时候,getWritableDat
阅读全文
摘要:file:///D:/BaiduNetdiskDownload/adt-bundle-windows-x86_64_20140101/adt-bundle-windows-x86_64_20140101/sdk/docs/reference/android/database/sqlite/SQLit
阅读全文
摘要:如果只是随便地反安装/uninstall之后,在文件系统或者是注册表里面可能会残留一些东西,这些东西如果不及时清除掉,再装可能会出现问题,你新装的会用不了。 basedir是安装目录,datadir是存放数据的目录。卸载之后basedir直接被删除掉了,datadir如果不手动删的话可能还会留在你的
阅读全文
摘要:究竟用户名和密码保存到哪里? 这个文件夹对应当前的应用来讲是一个私有的文件夹,你比较隐私的一些数据就可以往这里存。这个文件夹只有当前的应用可以去访问,别人正常情况下是访问不到的。非正常情况就是你手机被root了。root就是获取了超级管理员的权限,一旦你的手机获取了超级管理员的权限的话,获取了超级管
阅读全文
摘要:package com.itheima.logindemo; import android.os.Bundle; import android.app.Activity; import android.content.DialogInterface; import android.text.TextUtils; import android.util.Log; import andr...
阅读全文
摘要:第一步:画UI。第二步:对UI敲Java代码,然后给它部署到设备上。 有一个勾选框判断这个东西是否勾上了,如果勾上了,把用户名和密码保存起来。网站和论坛经常都会有这样的选项。是否记住用户名和密码,你如果勾上了咱们就把用户名和密码通过文件的形式存到本地。 判断用户名和密码是否为空,如果不为空,就判断这
阅读全文
摘要:在java基础的时候如果想调试程序打一下日志,用的是System.out.println();. 控制台输出的其实不是咱们的日志,而是我把整个项目的部署到设备上。控制台输出的是这个东西。Uploading上传,Installing安装。 安卓中真正输出日志的是logcat日志猫。 Tag 通过标签来
阅读全文
摘要:Java的单元测试JUnit。 Java程序入口是main方法。一般不在安卓程序入口 做测试。 这是一个安卓的应用,最终想测试这个方法,必须得把代码跑到设备上才行。代码得跑在ARM/Dalvik虚拟机才行。所以首先要把代码部署到设备上。 必须在清单文件里面指定一个仪器设备instrumentatio
阅读全文
摘要:XML序列化就是把一些Java的一些对象、相关的一些东西通过XML的形式保存成一个XML文件,跟解析是一个相反的过程。XML解析是把一个XML的东西、把这个文本转换成Java的对象,把里面的内容读出来。序列化就是把我们想保存的内容转化成一个具有XML格式的字符串,最终存储成一个文件。 在国内大部分测
阅读全文
摘要:只考虑4.0以上的安卓设备.4.0以下的不适配了.可能过一段时间4.0的设备也会被淘汰了. 4.4之后多了一个art模式。art模式是在安装的时候就已经把字节码翻译成了机器码。dalvik是一边运行一边翻译。翻译一条执行一条翻译一条执行一条。art模式的执行效率比dalvik要高,但是占硬盘而且安装
阅读全文
摘要:线性布局: 相对布局:所有的控件默认都是从左上角开始画的。安卓默认的布局就是相对布局。 相对布局它可以通过id来指定相互的位置。 相对布局不仅可以指定控件之间相对的位置,咱们还可以针对父容器去挪一个位置。配置它在父容器的正中间。 所以相对来说相对布局它摆放控件的位置会更灵活。不但可以让它在每个控件之
阅读全文
摘要:尽量不要用第四种点击事件的写法。在一万多行代码中发现了一个没被调用的代码 想半天咋整。可能是点击事件,然后还要找对应的界面。如果界面又很复杂,那就难找了。 前面三种点击事件的写法都会用到,第四种点击事件的写法就不要用了。自己写demo用第四种没问题,具体跟别人配合开发的时候第四种点击事件的写法就不要
阅读全文
摘要:软件工程部分最重要的一个知识点。 软件测试基础: 软件测试的步骤:单元测试、组装测试、确认测试、系统测试。 黑盒测试: 白盒测试: 软件维护:概念 一个程序员让他去检查自己的代码,让他去检查自己开发的产品,做测试,他也许很快就会给你一个报告。告诉你我这个软件已经设计的非常好了,已经发现不了错误了。这
阅读全文
摘要:第一种写法是有名内部类,第二种写法是匿名内部类,第三种写法是MainActivity实现接口OnClickListener.直接让MainActivity实现了OnClickListener这个接口。 用当前的MainActivity来实现这个接口.这种实现方式要在点击事件里面区分究竟是哪一个按钮被
阅读全文
摘要:第一次是写了一个内部类通过内部类的方式来实现了点击事件。需要注意的是onClick()代码什么时候执行。只有点击按钮的时候才会走onClick里面的代码。 MainActivity就是一个上下文,MainActivity继承了Activity.Activity的父类的父类的父类是Context.在内
阅读全文
摘要:Ctrl+1 把临时变量转成field属性. Activity继承了ContextThemeWrapper,ContextThemeWrapper继承了ContextWrapper,ContextWrapper继承了Context。所以MainActivity.java就是一个Context。Act
阅读全文
摘要:安卓中每看到的一个界面,都是对应着一个activity。 导入源码包 onCreate是做初始化相关的操作。inflate叫填充,inflate叫打气。把UI界面填充进来。 setContentView(int layoutResID)接收一个参数,布局文件的资源ID.R.java就有一个静态内部类
阅读全文
摘要:项目的名字可以用中文,但是包名不能用中文。 RelativeLayout相对布局,它可以存放元素。例如TextView元素是可以用来存放文本的。TextView的内容用户不能修改。 TextView指定了两个属性layout_width(布局的宽度)和layout_height(布局的高度)。每一个
阅读全文
摘要:通过adb指令咱们装相关的项目。把项目推到设备上。也可以进行文件相关的操作。adb的一些相关的指令。 开启连接IDE和设备的服务。 adb可以安装应用也可以卸载应用。项目怎么去区分?一个包名一个是签名。怎么去卸载应用?找到对应的项目。只要在这个设备上装的应用它的项目的包名肯定是不一样的。不可能有两个
阅读全文
摘要:java代码先编译成.class,最后打包成.dex.resources uncompiled resources:不需要编译的资源:资产目录assets 清单文件 用来标识唯一的安卓应用:签名和包名。 Android Tools->Export Signed Application Package
阅读全文
摘要:R.java是由IDE自动生成的,不允许修改. Android Dependences 安卓的支持库 项目创建之后一般都会把安卓支持库的V4包导入进来. 项目打包的时候assets的内容并不会被编译。java代码最后会被编译生成.XML,然后再打包成dex。最后在APK包里面assets是不会改变的
阅读全文
摘要:通过ADB(Android Debug Bridge)安卓调试桥把你的Eclipse(集成开发环境)和你的设备连接在一起。有时候ADB可能会被其他的东西占用。例如WPS会跟你抢ADB(抢端口)。如果你发现了这种情况就把WPS的云存储的服务给结束掉。 也可以Reset adb. 当前电话的状态:unr
阅读全文
摘要:分辨率不用选太高,否则会占用太大内存。你选高分辨率一跑起来会干掉你的500多MB的内存。1/8内存就没了。百分之97%或者是98%的设备都是ARM CPU.ARM自己不生产CPU,它生产的是一个标准的设计,最终产品由不同的公司去生产。它卖授权,由不同的公司去生产CPU.比较常见的手机上的CPU都是A
阅读全文
摘要:如果你不对SDK Manager进行设置,它默认会去谷歌官网下载最新的内容。由于官网被墙了,要么你FQ要么去设置代理。通过代理去下载相关的内容。 每一个android版本都对应着一个API的版本号。如果你获取当前操作系统的版本并不是4.3而是API 18.18、17、16、15、14.当前项目用到的
阅读全文
摘要:为什么应用的包名要用公司域名倒写呢?如何区分不同的安卓应用?高版本的应用装了之后会把低版本的应用覆盖掉。如果是不同的应用跟其他应用没关系只要装上去就可以了。区别不同的应用用的比较关键的东西是一个是应用的包名,还有一个比较关键的是打包的时候的签名。包名和签名这两个东西确定了唯一的应用。如果你的应用的包
阅读全文
摘要:系统测试是可有可无的。因为系统测试是和环境结合在一起。系统测试应该是在系统设计或者是需求分析阶段的前一步来完成的。 单元测试它的测试计划是在详细设计阶段完成。所以说单元测试的计划是在详细设计阶段来完成的。 模块接口的测试它保证了测试模块的数据流可以正确地流入和流出。模块接口可以保证它的数据流可以正确
阅读全文
摘要:主要是集成测试和确认测试阶段。另外在系统测试阶段也要用到黑盒测试。黑盒测试它是将软件看做是一个不透明的黑盒子,完全不考虑软件内部的结构和处理算法。而只检查软件的功能是否能够按照软件需求说明书那样正常的使用。当软件接收到了输入数据的时候是否能够得到正确的输出。只要能够得到正确的输出就达到我们的目的了。
阅读全文
摘要:白盒测试又称为逻辑驱动测试或者是结构测试。白盒测试它要考虑逻辑结构或者是内部结构.所以说白盒测试它是建立在已经知道了这个模块它的内部工作过程、内部逻辑有哪些分支、有哪些语句,这些都清楚地记录上来进行的。黑盒测试就是不管里面有些什么东西,不管做了什么样的操作,它只管一个输入一个结果。 设计一些测试用例
阅读全文
摘要:算符优先是编译原理中最难的考点。 ↑是指数运算,1的1次方.(E)等等这些符号.给出这一个文法我们是能够计算它的优先级的。计算这些符号的优先级的。知道一个完整的文法之后是会计算出它的优先级的。 (1)↑代表的是指数运算。X↑Y代表的是X的Y次方等于多少。↑的优先级最高,遵循右结合。2↑3↑2=2↑9
阅读全文
摘要:什么样的树称为语法推导树。学会写语法推导树。从语法推导树中求 语法树的每一个结点都有一个标记,而且这个标记是V的一个符号。文法的表示是:G={VN,VT,P,S}.V包括了文法的VN和VT.也就是说这个标记肯定是一个终结符或者是一个非终结符。每一个结点都是。 根结点标记肯定是S。S一般是代表开始符,
阅读全文
摘要:第二季度还没有微信支付,资金流还是走的现金.微信支付放在后期讲,因为这块要求还是比较多.微信支付这块要求首先是开放微信的接口,然后它有一系列的认证.它要求你是企业用户才能用.所以微信支付讲起来还是很麻烦的.这样就节省了服务员的工作量.电子点餐单推送到用户的手机上.只要能够推送电子点餐单,推送菜品信息
阅读全文