这篇博客我们来介绍一下代理模式(Proxy Pattern),代理模式也成为委托模式,是一个非常重要的设计模式,不少设计模式也都会有代理模式的影子。代理在我们日常生活中也很常见,比如上网时连接的代理服务器地址,更比如我们平时租房子,将找房子的过程代理给中介等等,都是代理模式在日常生活中的使用例子。 代理模式中的代理对象能够连接任何事物:一个网络连接,一个占用很多内存的大对象,一个文件,或者是一些复制起来代价很高...
1.下面通过一个HelloWorld案例来说明一下JNI利用NDK开发过程(步骤)分析:我们在Win7系统下编译的C语言代码,我们知道C语言依赖操作系统,不能跨平台,所以我们要通过NDK工具把在Win7系统下编写的C代码,转化为可以在Linux(Linux2.6.6---Android内核)运行的二进制代码,最后通过JNI协议规范,Android中java代码就可以调用这个转化后的二进制代码运行。(1)在Eclipse中新建一个Android工程,命名为"HelloWorld",如下:接下来来...
碎片的生命周期点击下载源码与活动类似,碎片具有自己的生命周期。理解了碎片的生命周期后,我们可以在碎片被销毁时正确地保存其实例,在碎片被重建时将其还原到前一个状态。1、使用上一篇的项目Fragments,在Fragment1.java文件中添加如下代码:package net.zenail.Fragments;import android.app.Activity; import android.os.Bundle; import android.support.v4.app.Fragment; import android.util.Log; import android.view.Lay...
目录(?)[-]访问其他应用的content providerProvider的读写权限Provider的URI权限Provider的granting全局granting部分URI的granting访问其他应用的content provider我们在ProPermission中提供了一个content provider,成为PrivProvider,然后在ProPermissionClient中对调用这个provider接口。在ProPermission的AndroidManifest.xml中,对provider声明如下:<provider android:name=".PrivProvider" android:authorities="cn.wei...
PS:终于考完试了.来一发.微机原理充满了危机.不过好在数据库89分,还是非常欣慰的. 学习内容:1.Android中SparseArray的使用.. 昨天研究完横向二级菜单,发现其中使用了SparseArray去替换HashMap的使用.于是乎自己查了一些相关资料,自己同时对性能进行了一些测试。首先先说一下SparseArray的原理. SparseArray(稀疏数组).他是Android内部特有的api,标准的jdk是没有这个类的.在Android内部用来替代HashMap<Integer,E>这种形式,使...
作者:夏至 欢迎转载,也请保留这段申明,谢谢 有没有发现,我们以前的学习都是用在一个手机屏幕框里的,没有上下滑动的?如果我们增加内容好像会被覆盖?没错,这次我们就来解决这个问题,让你像浏览网页一样,刷刷刷。。。。 当然,我们还要增加两个按键,一个返回顶部,一个跳到底部。这样是不是就像网页一样了。这里的布局,我们要说一下,因为linearlayout是包裹在scrollview里面的。...
1.要从键盘录入用户名与密码我们需要使用Scanner类完成操作 2.接收到用户名与密码后,我们需要调用jdbc程序根据用户名与密码查询数据库 User.javapackage com.supergroup.domian;publicclass User{private String id;private String usernasme;private String password;private String email;public User() {super();}public User(String id, String usernasme, String password, String email) {super();this.id = id;this.userna...
概念Android程序各式各样,依靠的就是布局,先来看看布局都是怎么来的: 白色部分就是我们经常用的几种布局,主要说说这个 线性布局-LinearLayout在一个方向上对齐所有元素。可以横着、竖着,也可以嵌套,直接看代码吧<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"android:layout_width="fill_parent"android:layout_height="fill_parent"android:orientation="vertical"><!-- vertical 代表垂直布局...
之前开发的项目中实用到IM聊天功能。可是这块功能公司有专门的IM团队来开发,由他们开发好后。直接接入到我们APP中。我參与写IM相关功能非常地少,所以也一直想学习相关知识 。 眼下Android主要用的是XMPP协议及OPenfireserver来实现IM功能,我也从这块入手学习。也感谢全部分享资料让我有机会学习的同行们。 如今正式開始啦。 第一步:搭建Openfireserver: Openfire工具下载地址:http://www.igniterealtime.org/downloads/inde...
在Android开发中,资源包括文件或者值,它们和执行应用捆绑,无需在源代码中写死,因此我们可以改变或替换他们,而无需对应用重新编译。了解资源构成参考阅读Android学习笔记(三八):资源resource(上)、XML解析(XmlPullParser),Android学习笔记(三九):资源resource(下)。Strings资源。位于res/values下,可以有一个或多个xml文件。其中最为常见的是strings.xml,对于demo这类小例子,为了方便常全部都放在strings.xml中...
一、简介 二、代码1.xml(1)activity_main.xml 1 <?xml version="1.0" encoding="utf-8"?>2 <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"3 android:orientation="vertical" android:layout_width="fill_parent"4 android:layout_height="fill_parent">5 6 <Button android:id="@+id/scaleButtonId" android:layout_width="fill_parent"7 android:layout_height="wrap_content...
原始资源android中没有专门提供管理支持的类型文件,都被称为原始资源。例如:声音资源...android原始资源存放位置: 1.res/raw,android SDK会处理该目录下的原始资源,会在R清单中生成唯一索引 2./assets/,该目录下的资源是更彻底的原始资源。android通过AssetManager来管理该目录下的原始资源注意:原始资源通过SDK生成的唯一索引的使用方式同其他资源使用方式一致。EG:R.raw.filename/@raw.filename AssetManager是一个专...
目录(?)[-]EditText Preferencesxml文件设备的存贮文件Ringtone PreferencesEditText Preferencesxml文件在res/xml/中增加edittext.xml文件,如下:<?xml version="1.0" encoding="utf-8"?> <PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android" android:key="packet_name" android:title="Package Name"> <EditTextPreference android:key="package_name_pref" android:title="Set P...
一、layout介绍二、测试linear_layout1.activity_main.xml<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"android:layout_width="match_parent"android:layout_height="match_parent"android:orientation="horizontal" ><TextView android:layout_width="wrap_content"android:layout_height="wrap_content"android:background="#ff0000"android:text="第一个"...
调用拨号界面拨打电话(不直接打出去) Intent intent1= new Intent(Intent.ACTION_DIAL); intent1.setData(Uri.parse("tel:400-8181800")); startActivity(intent1); Manifest文件里: 设置权限 <uses-permission android:name="android.permission.CALL_PRIVILEGED" /> (报错的话,clean项目,)************************************************************************************************...