- 浏览: 1843394 次
- 性别:
- 来自: 深圳
文章分类
- 全部博客 (665)
- 闲话 (17)
- ruby (1)
- javascript (40)
- linux (7)
- android (22)
- 开发过程 (11)
- 哥也读读源代码 (13)
- JVM (1)
- ant (2)
- Hibernate (3)
- jboss (3)
- web service (17)
- https (4)
- java基础 (17)
- spring (7)
- servlet (3)
- 杂记 (39)
- struts2 (10)
- logback (4)
- 多线程 (2)
- 系统诊断 (9)
- UI (4)
- json (2)
- Java EE (7)
- eclipse相关 (4)
- JMS (1)
- maven (19)
- 版本管理 (7)
- sso (1)
- ci (1)
- 设计 (18)
- 戒烟 (4)
- http (9)
- 计划 (4)
- HTML5 (3)
- chrome extensions (5)
- tomcat源码阅读 (4)
- httpd (5)
- MongoDB (3)
- node (2)
最新评论
-
levin_china:
勾选了,还是找不到
用spring annotation声明的bean,当打包在jar中时,无法被扫描到 -
GGGGeek:
我用的maven-3.5.0,还没有遇到这种情况,使用jar ...
用spring annotation声明的bean,当打包在jar中时,无法被扫描到 -
GGGGeek:
受益匪浅,从组织项目结构,到技术细节,讲的很到位,只是博主不再 ...
一个多maven项目聚合的实例 -
Aaron-Joe-William:
<?xml version="1.0" ...
hibernate逆向工程 -
li272355201:
http://archive.apache.org/dist/ ...
tomcat源码阅读(一)——环境搭建
1、Activity和Service组件是Context的子类,BroadcastReceiver和ContentProvider不是
2、用adb shell命令,可以看到底层linux的目录结构
data/anr 记录ANR信息
data/app/*.apk 应用的安装源文件
data/data/package_name 装好的应用会出现在这里,package_name取决于Manifest.xml文件中的定义
data/data/package_name/shared_prefs/name.xml SharedPreferences文件会保存在这里
data/data/package_name/files/file.name 用openFileOnput()创建的文件在这里
data/data/package_name/databases/dbname.db 内置的SQLite数据库文件在这里,如果没有这个文件,就会触发SQLiteOpenHelper类的onCreate()方法
3、利用SharedPreferences来存储键值对
Context.MODE_PRIVATE 0
Context.MODE_WORLD_READABLE 1
Context.MODE_WORLD_WRITEABLE 2
创建的文件在这个路径:shared_prefs/name.xml
4、用Context的createPackageContext()方法,可以得到另外一个应用的Context,不过前提是你得知道另外一个应用的package_name,但是别人如果不告诉你,你一般是不会知道的
Context.createPackageContext(String packageName,Context.MODE_WORLD_READABLE)
5、SharedPreferences are ultimately backed by XML files on the Android filesystem
6、Context.openFileOutput(String fileName,Context.MODE_PRIVATE);
创建的文件保存在files/file.name
7、Context.openFileInput(String fileName,Contet.MODE_PRIVATE);
8、Occasionally, setting the user ID of your application can be extremely useful. For instance, if you have multiple applications that need to share data with one another, but you also don’t want that data to be accessible outside that group of applications, you might want to make the permissions private and share the UID to allow access. You can allow a shared UID by using the sharedUserId attribute in your manifest: android:sharedUserId="YourID".
9、When you place a file in the res/raw location, it’s not compiled by the platform, but is available as a raw resource
10、Files in res/xml are different from raw files in that you don’t use a stream to access them because they’re compiled into an efficient binary form when deployed.
11、The SD card is removable, and SD card support on most devices (including Android-powered devices) supports the File Allocation Table (FAT) ) filesystem. The SD card doesn’t have the access modes and permissions that come from the Linux filesystem.
12、要用好Android内置的SQLite,首先需要熟练掌握下面4个类的用法
SQLiteOpenHelper
SQLiteDatabase
ContentValues
Cursor
13、Unlike the SharedPreferences you saw earlier, you can’t make a database WORLD_READABLE. Each database is accessible only by the package in which it was created. If you need to pass data across processes, you can use AIDL/Binder or create a ContentProvider, but you can’t use a database directly across the process/package boundary.
14、内置的SQLite数据库,可以用
adb shell
cd data/data/package_name/databases
sqlite3 name.db
来访问,在这个命令行界面,可以使用很多命令,有一个比较方便的是.header ON,可以在用select语句的时候,打印出列明。不然什么都看不到,因为默认的是.header OFF
15、ContentProvider可以跨应用访问数据库
16、用完Cursor之前,不能调用SQLiteDatabase.close();否则Cursor就失效了,为了这个低级错误,浪费了很多时间调试代码。。。不过最终写了一个还算不错的通用数据库访问层,可以支持简单的ORM和跨表事务。代码在公司,周一再专门写一篇博客发出来
17、SQLiteDatabase.insert()中用到的ContentValues不包含autoincrement的_id,这个也是低级错误。。也研究了好长时间
18、单元测试继承自AndroidTestCase,里面有一个getContext()
19、MainActivity.this,这个一般常出现在OnClickListener的onClick()方法体里,因为OnClickListener在这个场景里常常是作为一个内部类出现,所以MainActivity.this,指的就是所在的MainActivity对象的引用
20、Cursor用完要关闭哦,亲,不是只关DB就可以的
21、如果一个Receiver要同时侦听好多事件,可以在onReceive()方法里用intent.getAction()来判断触发的是哪个事件
22、侦听网络变化用ConnectivityManager,而不是TelephonyManager,因为可能会捕获到2次OFF_LINE事件
2、用adb shell命令,可以看到底层linux的目录结构
data/anr 记录ANR信息
data/app/*.apk 应用的安装源文件
data/data/package_name 装好的应用会出现在这里,package_name取决于Manifest.xml文件中的定义
data/data/package_name/shared_prefs/name.xml SharedPreferences文件会保存在这里
data/data/package_name/files/file.name 用openFileOnput()创建的文件在这里
data/data/package_name/databases/dbname.db 内置的SQLite数据库文件在这里,如果没有这个文件,就会触发SQLiteOpenHelper类的onCreate()方法
3、利用SharedPreferences来存储键值对
Context.MODE_PRIVATE 0
Context.MODE_WORLD_READABLE 1
Context.MODE_WORLD_WRITEABLE 2
创建的文件在这个路径:shared_prefs/name.xml
4、用Context的createPackageContext()方法,可以得到另外一个应用的Context,不过前提是你得知道另外一个应用的package_name,但是别人如果不告诉你,你一般是不会知道的
Context.createPackageContext(String packageName,Context.MODE_WORLD_READABLE)
5、SharedPreferences are ultimately backed by XML files on the Android filesystem
6、Context.openFileOutput(String fileName,Context.MODE_PRIVATE);
创建的文件保存在files/file.name
7、Context.openFileInput(String fileName,Contet.MODE_PRIVATE);
8、Occasionally, setting the user ID of your application can be extremely useful. For instance, if you have multiple applications that need to share data with one another, but you also don’t want that data to be accessible outside that group of applications, you might want to make the permissions private and share the UID to allow access. You can allow a shared UID by using the sharedUserId attribute in your manifest: android:sharedUserId="YourID".
9、When you place a file in the res/raw location, it’s not compiled by the platform, but is available as a raw resource
10、Files in res/xml are different from raw files in that you don’t use a stream to access them because they’re compiled into an efficient binary form when deployed.
11、The SD card is removable, and SD card support on most devices (including Android-powered devices) supports the File Allocation Table (FAT) ) filesystem. The SD card doesn’t have the access modes and permissions that come from the Linux filesystem.
12、要用好Android内置的SQLite,首先需要熟练掌握下面4个类的用法
SQLiteOpenHelper
SQLiteDatabase
ContentValues
Cursor
13、Unlike the SharedPreferences you saw earlier, you can’t make a database WORLD_READABLE. Each database is accessible only by the package in which it was created. If you need to pass data across processes, you can use AIDL/Binder or create a ContentProvider, but you can’t use a database directly across the process/package boundary.
14、内置的SQLite数据库,可以用
adb shell
cd data/data/package_name/databases
sqlite3 name.db
来访问,在这个命令行界面,可以使用很多命令,有一个比较方便的是.header ON,可以在用select语句的时候,打印出列明。不然什么都看不到,因为默认的是.header OFF
15、ContentProvider可以跨应用访问数据库
16、用完Cursor之前,不能调用SQLiteDatabase.close();否则Cursor就失效了,为了这个低级错误,浪费了很多时间调试代码。。。不过最终写了一个还算不错的通用数据库访问层,可以支持简单的ORM和跨表事务。代码在公司,周一再专门写一篇博客发出来
17、SQLiteDatabase.insert()中用到的ContentValues不包含autoincrement的_id,这个也是低级错误。。也研究了好长时间
18、单元测试继承自AndroidTestCase,里面有一个getContext()
19、MainActivity.this,这个一般常出现在OnClickListener的onClick()方法体里,因为OnClickListener在这个场景里常常是作为一个内部类出现,所以MainActivity.this,指的就是所在的MainActivity对象的引用
20、Cursor用完要关闭哦,亲,不是只关DB就可以的
21、如果一个Receiver要同时侦听好多事件,可以在onReceive()方法里用intent.getAction()来判断触发的是哪个事件
22、侦听网络变化用ConnectivityManager,而不是TelephonyManager,因为可能会捕获到2次OFF_LINE事件
public class NetworkChangeReceiver extends BroadcastReceiver { @Override public void onReceive(Context context, Intent intent) { ConnectivityManager cm = (ConnectivityManager) context .getSystemService(Context.CONNECTIVITY_SERVICE); NetworkInfo status = cm.getNetworkInfo(ConnectivityManager.TYPE_MOBILE); if (status.isConnected()) { Log.i("tag", "网络可用"); } else { Log.i("tag", "网络不可用"); } } }
<application android:icon="@drawable/icon" android:label="@string/app_name"> <receiver android:name=".receiver.NetworkChangeReceiver"> <intent-filter> <action android:name="android.net.conn.CONNECTIVITY_CHANGE" /> </intent-filter> </receiver> </application> <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
发表评论
-
最近半个月开发小结
2011-12-05 22:16 13141、有一个方法,有一段 ... -
android培训文档提纲(四)
2011-11-27 23:28 12511、生命周期方法onSaveInstanceState()是在 ... -
Tasks and Back Stack
2011-11-22 23:47 1183Even though the activities may ... -
上周开发过程中几个简单问题的总结
2011-11-21 13:18 1363上周开发中组员遇到几个问题,都不是大问题,但都耽搁了一些时间。 ... -
android的Log组件和logcat命令
2011-11-12 23:03 6324项目进入开发阶段了, ... -
android培训文档提纲(二)
2011-11-07 21:10 1664一、Each Activity can make an ... -
android培训文档提纲(一)
2011-10-23 14:05 1607最近项目快要进入开发 ... -
顶部有一排按钮,最底下还有FooterView的ListView页面
2011-08-13 15:46 3302先上效果图: 下面详细说说这个页面是怎么做出来的: 1、 ... -
实现屏幕下方展示的TAB分页
2011-08-09 23:22 2176这篇博客是参考helloandroid兄的腾讯微博应用,我整理 ... -
PendingIntent
2011-08-08 16:02 1562在开发SMS等应用时,有时调用相关的API会要求提供一个类型为 ... -
android数据持久化总结
2011-08-06 12:23 19221、 通过Context.getSharedPreferenc ... -
intent and service
2011-08-04 00:07 1424明天才开始讨论包需求 ... -
最近两周android总结
2011-08-01 23:42 1617最近2周预研做得差不多 ... -
没有单元测试,怎能写代码
2011-07-25 17:56 1573项目前期的技术点预研完成了,最近开始做原型开发。 之前没有在 ... -
android process and thread
2011-07-18 16:31 1695前三周android预研中,把可能用到的技术点都识别了,并完成 ... -
android第三周小结
2011-07-18 10:16 13641. 系统自带的通讯录应用,联系人名单保存在data/data ... -
onPause()方法的特殊性
2011-07-15 17:11 2929onPause(), onStop(), onDestroy( ... -
activity存在的三种状态
2011-07-15 16:44 1776An activity can exist in essent ... -
android第二周小结
2011-07-14 10:50 11641. 做了短信侦听的Broadca ... -
android一周小结
2011-07-04 21:26 1232做了一周android预研,总结以下几条: 1. 用DDMS ...
相关推荐
"软件项目开发的全套文档提纲模板"旨在提供一个结构化的框架,帮助开发者和项目经理有效地组织和编写各种必要的文档。以下是对这个提纲模板中可能包含的主要知识点的详细解释: 1. **项目启动文档**: - 项目背景...
软件项目开发的全套文档提纲 软件项目开发的全套文档提纲\项目开发总结报告(GB8567——88).doc 软件项目开发的全套文档提纲\用户手册(GB8567——88).doc 软件项目开发的全套文档提纲\操作手册(GB8567——88)....
以下是对"软件项目开发的全套文档提纲"的详细解释: 1. **项目启动文档 (Project Initiation Document, PID)** - PID是项目的起点,它定义了项目的目标、范围、预期成果以及初步的时间线和预算。 2. **需求分析...
软件开发项目文档的应用是非常广泛的,例如,软件开发项目文档可以作为项目团队的参考文档,软件开发项目文档可以作为项目团队与客户之间的交流工具,软件开发项目文档可以作为项目团队的培训文档等。 软件开发项目...
这个提纲主要关注的是底层部分,特别是针对ARM平台的Android移植与驱动核心开发。 1. **Android系统体系及移植相关工具** - **Android操作系统体系结构**:Android的核心包括Linux内核,负责硬件管理,以及Dalvik...
"项目开发的全套文档提纲doc"涵盖了项目从启动到结束各个阶段所需的主要文档,旨在为团队提供清晰的指导和结构化的工作流程。以下是这套文档提纲中所包含的知识点详解: 1. 可行性研究报告:这是项目启动阶段的第一...
清华大学培训班培训提纲清华大学培训班培训提纲清华大学培训班培训提纲清华大学培训班培训提纲
《高管财务知识培训》提纲主要涵盖了财务报表的解读、财务指标分析以及绩效分析三个核心领域,旨在提升高级管理人员的财务理解和决策能力。 首先,提纲深入解析了资产负债表和利润表这两个关键财务报表。资产负债表...
"软件项目开发全套文档提纲"涵盖了软件工程中的各个重要阶段,旨在提供一个清晰、系统化的指导框架,以帮助团队成员理解项目的整体结构和各个阶段的目标。以下是对这套文档模板各部分的详细解释: 1. **项目启动...
垃圾分类培训提纲.doc