文章列表
四大组件: activity service receiver provider
activity的开启模式:
1.standard
2.singletop 来电一声响开启的activity
3.singletask (开销大的activity 比如浏览器的BrowserActivity)
4.singleinstance (开启新的任务栈) 程序锁输入密码
浏览器的activity是运行在com.android.browser的进程里面的.
但是浏览器activity的引用是存放在 调用者的任务栈里面的.
task栈. 维护activity的引用,并不存在activity的实例.
...
1.可以拖动的布局:
SlidingDrawer
2.病毒
其实也是一个程序.
杀毒软件,识别这一个特殊的程序,然后可以把这个程序给卸载掉.
1.病毒查杀: 查询每一个文件的特征码,比对病毒数据库.(全盘扫描)
云查杀: 上传特征码到服务器,服务器比对是否是病毒.
(蜜罐)
2.主动防御: 基于关键的api 关键的注册表位置进行扫描和拦截.(lbe).
人工智能: (一组复杂的if语句)
--模糊逻辑.
1.8的人是高还是矮
(基于特征进行识别)
3.引擎: 一个优化后的病毒数据库查询的工具.
3.在android下 每一个应用程序 ...
1.获取正在运行的进程
List<RunningAppProcessInfo> runningappInfos = am.getRunningAppProcesses(); 获取所有正在运行的进程信息
for (RunningAppProcessInfo info : runingappsInfos) {
int pid = info.pid; 通过进程信息获取进程的pid
String packname = info.processName; 获取正在运行的进程的进程名字(也就是包名)
long memsize = am.getProcessMemoryInf ...
1.service 系统的一个组件. 可以理解为长期在后台运行的没有界面的activity.
两种开启服务的方法:
1. startService(intent); 服务一旦开启就会长期的在后台运行,调用者退出,服务不受影响.
2. bindService(); 好基友. 如果调用者 ...
1.获取可用的sd卡的空间
File path = Environment.getExternalStorageDirectory(); //获取sd卡的存储目录
StatFs stat = new StatFs(path.getPath());
long blockSize = stat.getBlockSize(); //获取Block的内存的大小
long availableBlocks = stat.getAvailableBlocks(); //获取可用内存的Block的数目
long totalBlocks = sta ...
1.setOnCancelListener(listener);
当用户关闭对话框的时候调用的方法
2.serializer.attribute();//添加属性
parser.getAttributeValues(0);//获得属性的值
1.<LinearLayout android:visibility="invisible"
LinearLayout.setVisibility(View.INVISIBLE);
2.ListView的数据,屏幕显示多少条item,数据适配器baseAdapter就的getView方法就调用多少次。
getView方法中的 convertView对象的作用 就是一个已经被系统回收的历史缓存的view对象。
3.ListView标签 中 android:fastScrollEnabled="true" 当快速滚动屏幕的时候,会出来一个小 ...
1.File file = new File("/data/data/it.heima.mobilesafe/files/naddress.db");
FileOutputStream fos = openFileOutput("naddress.db", MODE_PRIVATE);
AssetManager am = getAssets();
InputStream is = am.open("naddress.db");
2.ProgressDialog pd = new ProgressDialog(con ...
1.RelativeLayout 的 gravity 属性和 这个布局中的view里面的alignParent...冲突,不能一起用
android:layout_width="match_parent"
android:layout_height="match_parent"
android:scaleType="center"
RelativeLayout中设置该view在布局的中间。
2.更改activity组件切换的动画
overridePendingTransition(R.anim ...
1. 一般应用程序 都会有一个splash的界面 (初始化logo界面)
---展现产品logo 提升产品的知名度.
---做一些初始化的操作. (初始化数据库,文件的拷贝,配置信息的生成).
---提供产品的用户体验. (根据系统的时间和日期展现不同的logo,提高产品的用户体验).
---连接服务器 获取最新的版本.
2. 应用程序源代码的组织结构
一.
默认包 activity
.ui.stub
.db 数据库
.db.dao 数据库的访问类包
.adapter 数据适配器的包
.service 系统的服务 ...
1.Notification(状态栏通知)
1.获取通知管理器
NotificationManager mNotificationManager = (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE);
2.新建一个通知,指定其图标和标题
Notification notification = new Notification(icon, null, when); 第一个参 ...
1.SoundPool
指定声音池的最大音频流数目为10,声音品质为0(这参数没什么用,一般为0)
pool = new SoundPool(10, AudioManager.STREAM_SYSTEM, 0);
载入音频流,返回在池中的id,load方法是异步方法,这个方法没执行完,下个方法可能就开始了
final int sourceid = pool.load(this, R.raw.pj, 0);
播放音频,第二个参数为左声道音量;第三个参数为右声道音量;第四个参数为优先级,0表示最低;第五个参数为循环次数,0不循环,-1一直循环;
第六个参数为速率,速率最低0 ...
1.广播接收者
用于接收广播Intent,广播Intent的发送是通过调用Context.sendBroadcast()、Context.sendOrderedBroadcast()
来实现的。通常一个广播Intent可以被订阅了此Intent的多个广播接收者所接收
第一步:继承BroadcastReceiver,并重写onReceive() ...
1.显示意图三种创建方式:
构造函数,代码少
new Intent(this, NewActivity.class);
类名形式,灵活,可扩展性强
intent.setClassName(this, "cn.itcast.activity.NewActivity");
包名类名形式,可启动其他程序中的Activity
intent.setClassName("cn.itcast.downloader", "cn.itcast.downloader.MainActivity");
2.隐式意图创建Activity
1 ...
1.利用HttpURLConnection对象,我们可以从网络中获取网页数据
URL url = new URL("http://www.sohu.com");
HttpURLConnection conn = (HttpURLConnection) url.openConnection();
conn.setConnectTimeout(5* 1000);//设置连接超时
conn.setRequestMethod(“GET”);//以get方式发起请求
if (conn.getResponseCode() != 200) throw new RuntimeEx ...