回顾
1. 加载模式
standard
singleTop
singleTask
singleInstance
onNewIntent()
SingleTon
单实例设计模式
全局只有一个实例
1. 构造方法私有
2. 类内部创建实例
3. static方法获取实例
饱汉: 成员变量初始化
饿汉: (延迟加载)第一次使用的时候初始化
Lazy Loading
ListView
不要重复发明轮子
复用 消除重复
延迟加载
2. 自定义OptionsMenu
详细分析被替换对象的特征
显示:Menu
隐藏:1. 再按Menu
2. Back
3. other
4. MenuItem
5. onPause()
3. 布局的标签和优化
include
merge
requestFocus
viewstub
定制ProgressBar
1. 无尽
实现方法:
android:indeterminateDrawable="@drawable/progressbaranim"
1. 查找style的定义
sdk\platforms\android-10\data\res
\values\attrs.xml styles.xml
关键字:progressbar
找到决定UI显示的属性
<item name="android:indeterminateDrawable">
@android:drawable/progress_medium_white</item>
产品经理 用户交互设计师 研发
3. 有序广播
垃圾短信过滤
系统短信广播ACTION:
android.provider.Telephony.
SMS_RECEIVED
声明权限:android.permission.RECEIVE_SMS
指定广播接收者的优先级
<intent-filter android:priority="">
priority:值的范围:-1000~1000
发送有序广播:
sendOrderedBroadcast
中止有序广播
abortBroadcast();
IP拨号
获取数据:getResultData()
修改数据:setResultData(telnumber);
权限:
android.permission.PROCESS_OUTGOING_CALLS
Action:
android.intent.action.
NEW_OUTGOING_CALL
4. WebView
是什么:是一个UI组件,是显示Html的组件,
使用了一个Html和js语法解析引擎
Webkit是一个开源的html、js解析引擎
iOS safari
搜狗
好处:Android UI-> Htm
以用户体验品质为代价换时间
HTML5 native app
以web技术为基础跨移动平台的开发框架
phonegap
reexxx
如何使用:
1. 布局中添加Webview
mWebView.loadUrl("http://www.baidu.com/");
2. 点击链接时不启动系统浏览器
mWebView.setWebViewClient(new WebViewClient());
3. 浏览本地html文件
mWebView.loadUrl(
"file:///android_asset/android.html");
4. 进度刷新
mWebView.setWebChromeClient(new WebChromeClient()
{
@Override
public void onProgressChanged(WebView view, int newProgress) {
mProgressBar.setProgress(newProgress);
}
});
5. LocalView和WebView数据交互
Local -> WebView
WebView -> Local
6. 获得焦点
mWebView.setOnTouchListener(new OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {
mWebView.requestFocus();
return false;
}
});
5. 横纵屏
横纵屏切换:
当前的Activity的成员变量的数据可能丢失
UI界面的数据不会丢失
与UI无关的状态,需要持久化
onStop() 存储
onStart() 恢复
处理屏幕改变
1. manifest指定方向
android:screenOrientation="portrait"
2. manifest指定配置改变
android:configChanges="orientation|keyboardHidden"
3. 覆写Activity中的onConfigurationChanged()
if (newConfig.orientation == Configuration.ORIENTATION_LANDSCAPE)
{
}
else if (newConfig.orientation == Configuration.ORIENTATION_PORTRAIT)
{
}
ProgressBar pb = new ProgressBar(context, null, android.R.attr.progressBarStyleHorizontal);
注意第三个参数就是指定style, 要不然显示不正确!
命令:ll 或者 ls -l
解释,输出的格式如下
-rwxr-xr-x 1 root wheel 430540 Dec 23 18:27 /bin/bash
第一个字段 -rwxr-xr-x 包含该特殊文件的权限的符号表示。该字段中的首字符(-)指定该文件的类型,本例中它是一个常规文件。其它可能的首字符还有:
“d”目录
“l”符号链接
“c”字符专门设备文件
“b”块专门设备文件
“p”先进先出
“s”套接字
该字段的其余部分由三个三元组字符组成。第一个三元字符组代表文件所有者的权限,第二个代表文件的组的权限,第三个代表所有其他用户的权限
r 表示允许读(查看文件中的数据),w 表示允许写(修改文件以及删除),x 表示允许“执行”(运行程序)。
用户账户文件
/etc/passwd 保存用户名称,宿主目录,登录Shell等基本信息
/etc/shadow 保存用户密码
Ø 第一个字段 用户登录名
Ø 第二个字段 经过加密的用户密码字符串,或者密码占位符
Ø 第三个字段 用户的UID号
Ø 第四个字段 用户的GID号
Ø 第五个字段 用户的全名,可写与用户相关的详细信息
Ø 第六个字段 用户的宿主目录,用户登陆后使用的默认目录
Ø 第七个字段 登录shell信息,用户完成登录后使用的Shell
Ø 第一个字段 用户名
Ø 第二个字段 使用MD5加密的密码字串信息,当为 * 或 !!时表示此用户不能登录
Ø 第三个字段 上次修改密码的时间,表示从1970年01月01日起到最近一次修改密 码时间隔天数
Ø 第四个字段 密码最短有效天数,自本次修改密码后,必须至少经过多少天才能修 改,0表示不进行限制
Ø 第五个字段 密码最长有效天数,自本次修改密码后,经过该天数后必须修改,99999, 表示不进行限制
Ø 第六个字段 提前多少天提醒用户,口令将过期,默认为7天
Ø 第七个字段 密码过期多少天后,禁用此用户
Ø 第八个字段 账号失效时间,指定了用户作废的天数(从1970.1.1起),默认为空,表示永久可用
Ø 第九个字段 保留字段,目前没有特定用途
添加用户账号(useradd)
useradd [选项] 用户名
Ø -u 指定用户的UID号,要求该UID号未被其他用户使用
Ø -d 指定用户的宿主目录位置
Ø -e 指定用户帐号失效时间,可使用YYYY-MM-DD的格式
Ø -g 指定用户的基本组名,或使用GID
Ø -G 指定用户的附加组名,或使用GID
Ø -M 不建立使用者目录,即使/etc/login.defs系统档设定要建立使用者目录
Ø -s 指定用户使用的shell
Passwd 命令-----为用户帐号设置密码
Ø -d 清空指定用户账户的密码,只使用用户名即可登录
Ø -l 锁定用户帐号
Ø -S 查看用户账户状态
Ø -u 解锁用户账号
usermod 命令------修改用户账号属性
Ø -u 修改用户的UID号
Ø -d 修改用户宿主目录位置
Ø -e 修改用户账号失效时间
Ø -g 修改用户的GID 号
Ø -G 修改用户附加组名
Ø -M 不为用户建立并初始化宿主目录
Ø -s 修改用户的登录shell
Ø -l 更改用户账号的登录名称
Ø -L 锁定用户账号
Ø -U 解锁用户帐号
userdel 命令------删除用户账号
Ø -r 将该用户的宿主目录一并删除
用户账号的初始配置文件(优先级高)
.bash_logout 退出登录时被执行
.bash_profile 用户每次登录时被执行
.bashrc 加载/bin/Bash程序时被执行
全局配置文件(为所有用户添加登录后运行的命令程序,自动设置变量等)
/etc/bashrc
/etc/profile
组账号文件
/etc/group 保存主账号的基本信息
/etc/gshadow 加密密码字符串等信息
groupadd命令-------添加组账号
Ø -g 指定GID号
gpasswd命令--------添加,删除组成员
Ø -a 将用户加到某个组中
Ø -d 将用户从某个组中删除
Ø -M 同时添加多个用户到组中。中间, 隔开
groupdel命令-------删除组账号
用户和组账号查询
Ø Id 查看当前用户对应的基本组,附加组信息
Ø Group命令-----查询某个用户账号所属的组
Ø Finger命令-----查询用户账号的详细信息,以每行一条记录的形式查看当前登录到本机的所有用户账号的详细信息,
-l-----以多行显示方式查看指定用户的详细信息
Ø Users、w、who命令------查询当前登录到主机的用户信息
Users 仅列出用户信息
Who 列出用户名、终端、登录时间、来源地点等信息
W 列出用户名、终端。执行命令等各种统计信息
设置文件/目录的权限
权限
文件
目录
r(4)
查看文件内容
查看目录内容(显示子目录、文件列表)
w(2)
修改文件内容
修改目录内容(在目录中新建、移动、删除文件或子目录)
x (1)
执行该文件(程序或脚本)
执行cd命令进入或退出该目录
Ø chmod [ugoa] [+ - =] 文件或目录
Ø chmod nnn 文件或目录
u 属主
g 属组
o 其他用户
a 所有用户
+ 增加权限
- 减少权限
= 设置对应的权限
设置文件/目录的归属
chown 属主[:[属组]] 文件或目录
使用附加权限
SET 位权限——多用于给可执行程序或脚本文件进行设置,执行文件被设置了SUID、SGID权限后,任何用户在执行该文件时,将获得该文件属主、属组账号对应的身份
chmod u+s
chmod g+s
粘滞位权限——主要为目录设置特殊,当目录呗设置了粘滞位权限以后,即使用户对该目录有写入权限,也不能删除该目录中其他用户的文件数据
chmod +t
chmod -t
chmod nnnn (第一位数字改为1或0)如:chmod 1777 /opt
本篇文章来源于 Linux公社网站(www.linuxidc.com) 原文链接:http://www.linuxidc.com/Linux/2010-08/28094.htm
大多数情况,Activity 默认都是占满全屏的。如果我们想显示成对话框的样子呢?

方法很简单,只需要在AndroidManifest.xml 的配置里面加一个atrribute: android:theme="@android:style/Theme.Dialog" 即可:
1 <activity
2 android:name=".ServerConfigDialogActivity"
3 android:label="@string/app_name"
4 android:theme="@android:style/Theme.Dialog">
5 <intent-filter>
6 <action
7 android:name="android.intent.action.MAIN" />
8 <category
9 android:name="android.intent.category.LAUNCHER" />
10 </intent-filter>
11 </activity>
扩展一下:
3. 如何将一个Activity设置成窗口的样式
简单你只需要设置
一下Activity的主题就可以了在AndroidManifest.xml 中定义 Activity的
地方一句话:
Xml代码
- android :theme="@android:style/Theme.Dialog"
- android:theme="@android:style/Theme.Dialog"
-
这就使你的应用程序变成对话框的形式弹出来了,或者
Xml代码
- android:theme="@android:style/Theme.Translucent"
-
- android:theme="@android:style/Theme.Translucent"
就变成半透明的,[友情提示-.-]类似的这种activity的属性可以在android.R.styleable
类的AndroidManifestActivity
方法中看到,AndroidManifest.xml中所有元素的属性的介绍都可以参考这个类android.R.styleable
上面说的是属性名称,具体有什么值是在android.R.style中可以看到,比如这个"@android:style/Theme.Dialog"
就对应于android.R.style.Theme_Dialog ,('_'换成'.'
摘要: ArrayList 不可以同步,Vector可以同步(synchonized)。ArrayList 性能上比Vector 优越一些;ArrayList, Vector 都是基于Array数组, 适合查询LinkedList 是基于Link链表,适合删除,增加,修改-----------------java 中 set map table list ~~的总结1.Collection List Set Map 区别记忆 这些都代表了Java中的集合,这里主要从其元素是否有序,是否可重复来进行区别记忆,以便恰当地使用,当然还存在同步方面的差异,见上一篇相关文章。有序否允许元素重复否Collecti
阅读全文
摘要: Ctrl+1快速修复(最经典的快捷键,就不用多说了)Ctrl+D:删除当前行Ctrl+Alt+↓复制当前行到下一行(复制增加)Ctrl+Alt+↑复制当前行到上一行(复制增加)Alt+↓当前行和下面一行交互位置(特别实用,可以省去先剪切,再粘贴了)Alt+↑当前行和上面一行交互位置(同上)Alt+←前一个编辑的页面Alt+→下一个编辑的页面(当然是针对上面那条来说了)Alt+Enter显示当前选择资源(工程,or文件or文件)的属性Shift+Enter在当前行的下一行插入空行(这时鼠标可以在当前行的任一位置,不一定是最后)Shift+Ctrl+Enter在当前行插入空行(原理同上条)Ctrl
阅读全文
摘要: 摘自:http://www.cnblogs.com/QinBaoBei/archive/2010/05/10/1731788.html适配器模式,外观模式三者之间的区别: 装饰者模式的话,它并不会改变接口,而是将一个一个的接口进行装饰,也就是添加新的功能。适配器模式是将一个接口通过适配来间接转换为另一个接口。外观模式的话,其主要是提供一个整洁的一致的接口给客户端。
阅读全文
摘要: MSF的基本原则:(1)推动信息共享(Foster open communications)(2)为共同的远景而工作(Work toward a shared vision)(3)充分授权和信任(Empower team members)(4)各司其责,对项目共同负责(Establish clear accountability and shared responsibility)(5)重视商业价...
阅读全文