03 2016 档案
摘要:myWebSite | |-- 静态资源和JSP文件都可以直接放在web应用目录下,浏览器可以直接访问 |-- WEB-INF 浏览器没有办法直接访问 |-- classes 动态web运行时的class文件,java类 |-- lib 动态web资源运行时所依赖的jar包 |--web.xml 整
阅读全文
摘要:利用广播调用服务里面的方法,间接的方式调用服务内部的方法,与现实中差不多,请媒体曝光 主界面里面 在界面创建的时候开启一下服务普通的startService()方法 发送一条广播出去 获取Intent对象,通过new出来 调用Intent对象的setAction()方法,参数:一般就是包名 调用se
阅读全文
摘要:aidl:android interface definition language 安卓接口定义语言 在两个不同的应用程序里面使用同一个接口 使用场景:调用支付宝服务进行支付 先写远程服务端Serivice 新建一个AlipayService继承系统Service 在清单文件里面,添加一个<ser
阅读全文
摘要:环境变量可以被系统,用户,shell以及其他程序来设定 登录系统后,系统读取/etc/profile 文件,设置环境变量,如果没有就跳过 检查主目录(/root)的.profile文件,推荐去这个文件配置自己的环境变量。比如:添加几个PATH变量,多个路径使用冒号:分割,改完这个文件使用 . .pr
阅读全文
摘要:绑定服务:可以调用服务里面的方法, 如果调用者activity销毁了,服务也会跟着销毁 单独解除绑定的时候,服务也会被销毁 开启服务:不可以调用服务里面的方法 如果调用者activity退出了,服务还会存在 需求:既要保证长期运行,又要执行服务里面的方法 生命周期 单独调用: startServic
阅读全文
摘要:需求:后台开启一个唱歌服务,这个服务里面有个方法切换歌曲 新建一个SingService继承系统Service 重写onCreate()和onDestory()方法 填一个自定义的方法changeSing(String songNume) 主界面里,开启服务,关闭服务,更改歌曲的按钮 我们调用api
阅读全文
摘要:AngularJs有自己的HTML事件 ng-click指令 ng-click指令定义了AngularJs点击事件 当点击按钮的时候,赋值count变量并且给count变量加1,显示出count变量 ng-click指令结合ng-hide显示隐藏html 给ng-click指令绑定一个函数,给ng-
阅读全文
摘要:应用程序:一组组件(activity service provider receiver)的集合 一般情况下,一个应用程序对应一个进程 一般情况下,关闭掉应用,关闭掉所有界面,应用程序的进程还在后台运行 安卓系统采用一组策略帮助我们管理进程 进程按照优先级分为不同的等级 1.前台进程,用户可以看到这
阅读全文
摘要:根据上一节代码里,加入一个录音功能,上传到服务器,就能实现一个录制器 当手机处于通话状态时,开启录音机 获取MediaRecorder对象,通过new出来 调用MediaRecorder对象的setAudioSource()方法,设置音频源, 参数:MediaRecorder.AudioSource
阅读全文
摘要:服务:在后台长期运行的没有界面的组件 新建一个类PhoneService类,继承系统的Service类 清单文件中 进行配置 新建一个节点<service>,设置名称android:name=”.PhoneService” 类里面有几个重要方法 onCreate()方法,服务被创建的时候调用 onD
阅读全文
摘要:上一节的短信拦截在4.0以上系统中无效,可以使用这种办法实现,定义一个activity,清单文件中指定主题为透明,在onCreate()方法里面直接调用finsh()方法,关掉,这样可以就可以实现了 应用场景:比如车载电脑,里面有很多应用,有些应用需要发射信号给某一个广播接收者 新建一个广播接收者,
阅读全文
摘要:比较重要的一个广播事件,短信 界面布局,比如播放视频,默认是横屏全屏的,清单文件中进行设置, 在<activity/>节点设置屏幕朝向属性,android:screenOrientation=”landscape” 设置主题android:theme=”@android:style/Theme.No
阅读全文
摘要:广播接收者,broadcast receiver,安卓系统在使用时会产生很多的事件,比如:短信到来,电量低,拨打电话等等 界面布局,线性布局,EditText指定为电话号码,设置属性android:inputType=”phone” 获取SharedPreference对象,调用getSharedP
阅读全文
摘要:下载压缩包,解压缩,好,安装完成 进入解压目录/bin/下面,找到startup.bat,双击,此时如果报错,那么就是没有设置环境变量JAVA_HOME,进入环境变量去设置,JAVA_HOME指向jdk的安装目录 配置Tomcat 找到conf/server.xml,找到<conector port
阅读全文
摘要:当一个界面中要要开启多个带有返回值的activity时,这个时候,就需要用到请求码和结果码了 调用startActivityForResult(intent,requestCode)方法,开启activity,参数:Intent对象,请求码,请求码的作用是区分当前是哪个点击事件开启的activity
阅读全文
摘要:应用场景:打开一个新的activity,在这个activity上获取数据,返回给打开它的界面 短信发送时,可以直接选择系统联系人 界面布局是一个线性布局,里面右侧选择联系人在EditText的右上,因此使用相对布局对输入框进行包裹,按钮使用android:layout_alignParentRigh
阅读全文
摘要:AngularJs为HTML DOM元素的属性提供了绑定数据的指令 ng-disabled指令 ng-disabled指令直接绑定数据到HTML元素的disabled属性 ng-show指令 ng-show指令隐藏和显示一个HTML元素 ng-hide指令与ng-show相反
阅读全文
摘要:模拟器横竖屏切换,ctrl+f11 界面activity会销毁,重新打开创建 第一种做法: 定死就是横屏 在清单文件,<activity/>节点部分,添加属性,设置屏幕朝向 android:screenOrientation=”landscape” 水平朝向,portrait竖直 绝大多数游戏,是采
阅读全文
摘要:创建两个activity,创建两个布局文件,布局中两个按钮,开启第一和开启第二个 当第一个界面打开的时候,进程会创建一个任务栈,栈里面只有一个activity 点击第二个界面,任务栈里面会加入activity2 再次点击第二个界面,任务栈里面再次加入activity2 当点击返回的时候,最后一个先弹
阅读全文
摘要:在MainActivity里面重写以下方法: 在这些方法里面打印log日志,为了方便查看在filter里面增加一个System.out来过滤 onCreate() onDestory() onPause() onResume() onStart() onStop() 第一次打开一个activity和
阅读全文
摘要:读取服务器json数据,get方式
阅读全文
摘要:新建一个activity,继承Activity 清单文件中进行配置,添加<activity/>节点 设置名称 android:name=”.类名” 点 代表的是当前包名,也可以不写 新建一个布局文件,线性布局,竖直排列 添加<TextView/>控件,设置控件内容水平居中,android:gravi
阅读全文
摘要:激活系统的某些应用,并且往应用里面填一些数据,比如说短信应用 打开短信应用,查看logcat,找到ActivityManager, 看到Display.com.android.mms/.ui.ComposeMessageActivity 查看短信源代码的清单文件,可以看到,一个activity节点下
阅读全文
摘要:AngularJs中你可以使用自己的服务或使用内建服务,服务是一个函数或对象,以下代码试验$location服务,$http服务,$timeout服务,$intverval服务,创建自定义服务
阅读全文
摘要:ndroid里面的清单文件相当于windows上的注册表,例如播放器可以关联文件直接打开,清单文件中activity节点的intent-filter节点进行配置 添加<action/>动作节点,设置名称android:name=”com.xxx.xx.xx” 添加<category/>默认附加选项节
阅读全文
摘要:随着api的升级,系统的很多应用包名和类名都改掉了,所以很多时候,打开系统应用的时候会报错,隐式意图就是解决组件之间松耦合,描述动作行为 获取Intent对象,通过new出来 调用Intent对象的setAction(action)方法,设置动作,参数:String类型的常量例如:Intent.AC
阅读全文
摘要:过滤器可以使用一个管道字符(|)添加到表达式和指令中,这不就是模板函数吗
阅读全文
摘要:可以使用跳转的方式类似javaweb来实现界面转换 显示意图就是必须要指定开启组件的具体信息,包名,组件名,组件的class 新建一个类TwoActivity ,继承Activity类,重写onCreate()方法,这个方法是界面开启的时候自动调用,在这个函数里面大部分进行初始化的操作,比如调用界面
阅读全文
摘要:github上搜索开源框架android-smarty-imageview,下载压缩包,拷贝我们之前写的网络图片查看器布局。 解压下载包里面的数据,找到java源码拷贝到我们的项目里,这时我们可以看到这个包下面有个SmartyImageView.java的自定义控件,SmartImageView是继
阅读全文
摘要:Scope作用域 Scope作用域是应用在HTML视图和Js控制器之间的纽带 Scope是一个对象,有可用的属性和方法 根作用域 所有的应用都有一个$rootScope,它可以作用在ng-app指令包含的所有的html元素中 $rootScope是各个controller中scope的桥梁,用roo
阅读全文
摘要:异步http框架post提交数据到服务器 前面我们使用普通的方式post提交数据,比较麻烦,现在使用异步框架来实现以下,感觉非常舒服。 获取AsyncHttpClient对象 调用AsyncHttpClient对象的post(uri,params,responseHandler)方法,post提交数
阅读全文
摘要:介绍github上的异步http框架android-async-http loopj开发 获取AsyncHttpClient对象,通过new 调用AsyncHttpClient对象的get(url,responseHandler)方法,发送get请求,参数:url是String类型的路径,respo
阅读全文
摘要:开源框架httpclient,android直接内置到了android.jar包中,对浏览器的简单包装 获取HttpClient对象,因为这个类是个接口,并且大部分都会提供一个实现类 以BaseXxx,DefaultXxx等命名,因此这个也有一个实现类叫DefaultHttpClient,直接new
阅读全文
摘要:ng-model指令 ng-model可以将输入域的值与AngularJs的变量绑定 双向绑定 当修改输入域的值时候,AngularJs属性的值也将修改 验证用户输入 以下提示信息将在ng-show属性返回true的情况下显示
阅读全文
摘要:重复HTML元素 ng-repeat指令可以重复HTML元素 创建自定义指令 使用.directive()函数来自定义指令,要调用自定义指令,html元素上需要添加自定义指令名,使用驼峰法来命名一个指令 限制使用,默认是元素名调用和属性调用
阅读全文
摘要:GET:内部实现是组拼Url的方式,http协议规定最大长度4kb,ie浏览器限制1kb POST和GET的区别比较了一下,多了几条信息 Content-Type:application/x-www-form-urlencoded Content-Length:93 主体内容 只需修改上一节代码中的
阅读全文
摘要:本节内容与上一节基本一致,也就是在url的上面拼接上参数,其他基本一样。 界面布局,线性布局,EditText用户名,EditText密码,Button按钮 为了使用这段代码演示多种方式请求服务器,新建一个service的包,建一个LoginService的类处理登陆请求,建一个静态方法,返回Str
阅读全文
摘要:当服务器端采用gbk或者gb2312编码,我们的android端采用utf-8编码,这个时候就会出现乱码,当我们new String()的时候,默认编码是utf-8,也可以手动设置编码是gbk,new String(str,”gb2312”),但是这个时候,访问utf-8编码的又会乱码。 对返回的h
阅读全文
摘要:访问这个路径进入后台页面 http://localhost:8888/admin/login 在后台路由控制器里面(/admin/index.js)调用登陆控制器(/admin/login.js) 登陆控制器里面,定义登陆界面的路由,定义登陆提交验证的路由,这里需要获取到form表单post提交的数
阅读全文
摘要:访问一个网页的请求实际上就是一个GET请求,应用的布局没啥好说的,线性布局,定义好控件,在activity代码里面先获取到控件,获取到EditText控件的网络路径,开启get请求 开启一个新的线程,new Thread(){}.start() 获取Url对象,new出来,参数:path是Strin
阅读全文
摘要:上一节,先把访问网络的部分放到一个子线程里面去执行,new Thread(){}.start(),new Thread直接使用匿名内部类来实现,重写run()方法,内部类访问外部的变量,这个变量应该定义成final的。 直接运行会报错,Only the original thread that cr
阅读全文
摘要:界面布局LinerLayout线性布局,ImageView控件,EditText控件 hint属性提示信息,Button控件。 Android:layout_weight=””属性,权重,只有控件的宽度和高度为0的时候才代表权重,否则它代表渲染的优先级,值越大优先级越低,默认是0,先渲染其他控件 s
阅读全文
摘要:Angularjs通过新的属性和表达式扩展了html Andularjs 可以构建一个单一页面的应用程序(SPAS SinglePageApplications) Angularjs通过指令扩展了html,通过表达式绑定数据到html ng-app指令定义Angularjs的应用程序 ng-mode
阅读全文
摘要:对应着读联系人,把数据写进去,市场上的社交类应用经常会有这样的功能 获取ContentResolver对象,通过getContentResolver()方法 调用ContentResolver对象的query()方法,查询raw_contacts表,得到Cursor对象 调用Cursor对象的mov
阅读全文
摘要:内容提供是实质上是个接口,后门,他给别人提供数据,系统联系人是个比较复杂的内容通过者。 找到/data/data/com.android.providers.contacts/contacts2.db 这个目录下还有个文件contacts2.db.-journal,这个文件和数据库的事务相关 联系人
阅读全文
摘要:拦截短信,比如当发短信的时候,就把短信读取出来,当系统的短信发生变化的时候,大叫一声,把数据发送到公共的消息邮箱里面,我们的应用通过内容观察者观察公共的消息邮箱 获取ContentResolver对象,调用函数getContentResolver(), 调用ContentResolver对象的r
阅读全文
摘要:首页路由:http://localhost:8888/ 首页分页路由:http://localhost:8888/index/2 分类列表分页路由:http://localhost:8888/category/分类id/分页 控制器调用article模型的assignIndexData()方法,参数
阅读全文
摘要:谷歌市场上有这些应用,模拟短信,原理就是把数据插入到短信应用的数据库里 获取ContentResolver对象,通过getContentResolver()方法 调用resolver对象的insert(uri,values)方法,参数:Uri对象,ContentValues对象 调用ContentV
阅读全文
摘要:使用ddms给模拟器发送几条短信,找到短信数据库导出 /data/data/com.android.providers.telephony/databases/mmssms.db 数据库字段:address(手机号),date(日期),type(1接收,2发送),body(内容) 在系统的全部源
阅读全文
摘要:[android] 内容提供者实现 上一节的主机名类似网络上的域名,协议是content://,可以定义一下规则 content://主机名/insert 添加操作 content://主机名/delete 删除操作 content://主机名/query 查询操作 content://主机名/
阅读全文
摘要:产生的原因是,当我们把数据存到数据库的时候,数据库的权限是私有的,把系统的短信应用中的数据库导出来,打开看到address字段是手机的号码,date字段是时间,type字段1,2代表发出去的短信和接受到的短信,body字段代表短信的数据。要想让别的应用程序访问自己数据库的数据,这时需要自己把数据给暴
阅读全文
摘要:使用回掉大坑进行取数据 能看明白的就看,看不明白的手动滑稽 /** * 首页控制器 */ var router=express.Router(); /*每页条数*/ var pageSize=5; router.get('/',function(req,res,next){ var currentP
阅读全文
摘要:当我们的列表包含图片和文字信息时,ArrayAdapter就无法实现了,使用SimpleAdapter,activity中findViewById()获取到ListView对象,调用ListView对象的setAdapter()方法,参数中传入SimpleAdapter对象。每一条数据是一个Map集
阅读全文
摘要:当想要实现一个非常简单单一的列表的时候,可以使用ArrayAdapter,测试一下,定义一个静态的成员属性数组String[] list={“功能1”,”功能2”},布局文件中使用ListView控件,定义id,activity里面获取这个ListView对象,调用ListView对象的setAda
阅读全文
摘要:上一节知道了ListView的工作原理,数据也展示出来了,但是TextView显示的非常难看,如果想美化一下,就先创建好一个布局出来,这个布局采用了两层LinearLayout嵌套,外层的水平方向,内层的竖直方向,android:gravity=”center_vertical”内容竖直居中,and
阅读全文
摘要:数据库模型 /model/db.js 数据库操作类,完成链接数据库和数据库的增删查改 查询表 /*查询*/ select:function(tableName,callback,where,field){ field=field ? field : '*'; var sql="select "+fi
阅读全文
摘要:Listview组件非常重要,4分之一的时间都是在搞这个,还是通过上一节的数据库,写个for循环,插入50条数据。 先使用笨方法显示数据,根布局LinearLayout 定义一个id,在activity里面获取这个id。 获取PersonDao对象,调用dao对象的查询全部的方法,得到一个list集
阅读全文
摘要:模板引擎 使用ejs作为我们博客的前端模板引擎,用来从json数据生成html字符串 安装:npm install ejs -save 使用:入口文件中写入下面代码,定义/view/目录为视图目录 /*模板引擎*/ application.set('views',__dirname+'/views'
阅读全文
摘要:为什么需要事务,保证操作同时成功,最常见的场景银行转账,需要修改一下上一节的数据库进行模拟转账操作,修改数据库表,这时需要用到PersonSQLiteOpenHelper类中的onUpgrade()方法,修改一下构造方法中的version,就会回调到onUpgrade()方法,在此方法里面执行修改表
阅读全文
摘要:Javaweb实现增删改查的步骤,1.加载jdbc的驱动,2.连接到数据库 3.准备sql语句, Android中加载驱动已经完成了,拿到数据库的引用就是链接数据库了。 获取SQLitedatabase 对象,调用上一节中helper对象的getWritableDatabase()方法 调用SQLi
阅读全文
摘要:Sqlite数据库是开源的c语言写的数据库,android和iphone都使用的这个,首先需要创建数据库,然后创建表和字段,android提供了一个api叫SQLiteOpenHelper数据库的打开和创建类。 具体使用比如:创建一个class叫PersonSQLiteOpenHelper用户数据库
阅读全文
摘要:错误处理中间件 定义错误处理中间件必须使用4个参数,否则会被作为普通中间件 /*错误处理器*/ application.use(function(err,req,res,next){ console.error(err.stack); res.status(500).send("代码出错了,错误信息
阅读全文
摘要:当程序出现错误的时候,界面出不来,这个时候就需要调试技巧,描述这个程序在哪个地方出现的问题。在你认为可能出错的代码部分,左侧的行号栏点击打断点,在项目目录右键 ==>debug as ==> android application。在java ddms视图旁边的面板来到debug视图 模拟器界面上会
阅读全文
摘要:前言 nodejs是运行在服务端的js,基于google的v8引擎。个人博客系统包含对数据库的增删查改,功能齐备,并且业务逻辑比较简单,是很多后台程序员为了检测学习成果,最先拿来练手的小网站程序。我也是在去年年末接触的nodejs,接下来随便纪录一下这个小blog的功能点和注意事项。 语言和环境 1
阅读全文
摘要:/***********2016年5月6日 更新**********************/ 知乎:Android 中有哪几种解析 xml 的类,官方推荐哪种 ? 以及它们的原理和区别? 刘吉财: 主要有dom,sax和pull三种,不过貌似官方推荐使用pull,这个不是很了解,但和sax类似,都
阅读全文
摘要:生成xml文件,模拟备份短信,创建短信的业务bean,创建一个domain的包放业务bean,这个业务bean里面,定义成员属性,生成get set方法,生成有参和无参的构造方法。 生成随机数,实例化Random,调用Random对象的nextInt(n)方法,生成0到n之间的随机数,获取当前系统的
阅读全文
摘要:/********************2016年5月6日 更新**************************************/ 知乎:Android 如何实现判断用户首次使用,比如首次使用时展示软件使用教程? 面条: 你需要的是SharedPreferences。 SharedPr
阅读全文
摘要:保存文件到sd卡需要判断sd卡的大小,通过查看android系统的自带应用的源代码,得到方法,sdk下面的source是sdk的源代码,包含的是android.Jar下面的所有class的源代码。在android系统源代码中有ndk(java调c),dalvik虚拟机等,里面packages/app
阅读全文