android圆弧效果:http://blog.csdn.net/mayingcai1987/article/details/6341693
Android设备信息获取:http://blog.csdn.net/wenlele/article/details/6316750
android ffmpeg http://www.cnblogs.com/scottwong/archive/2010/12/17/1909455.html
android调节亮度 http://blog.csdn.net/piaozhiye/article/details/6544450
android http get post 请求:http://blog.sina.com.cn/s/blog_5da93c8f0100t174.html
android 抓包http://blog.csdn.net/Zengyangtech/article/details/5853366
查看抓包:http://www.newhua.com/soft/2883.htm
http://www.cnblogs.com/feisky/archive/2010/12/19/1910635.html
http://yang/www.blogjava.net/zh-weir/archive/2010/01/24/310617.html
下载资料:http://xj397400712.xunzai.com /
音乐开源项目:http://android.git.kernel.org/?p=platform/packages/apps/Music.git;a=commitdiff;h=6cb8bc92e0ca524a76a6fa3f6814b43ea9a3b30d
算法:http://www.iteye.com/topic/547735、http://www.iteye.com/topic/547734 、http://www.iteye.com/topic/512609、
android_SDK
http://www.hiapk.com/bbs/thread-2899-1-1.html
加载效果:http://blog.lytsing.org/archives/297.html
http://mimi.99kav.info/
http://www.xwcool.com/?p=832
音乐项目:http://www.iteye.com/topic/186933
GPS定位包:http://blog.csdn.net/ecaol/archive/2010/03/24/5410915.aspx
详解 Android 的 Activity 组件:http://www.ibm.com/developerworks/cn/opensource/os-cn-android-actvt/
jjavaScript学习网站:http://www.w3school.com.cn/
歌词同步:http://www.blogjava.net/hadeslee/archive/2008/01/11/173489.html
使用jad及eclipse插件进行.class文件的反编译:http://blog.chinaunix.net/u/30292/showart_400060.html
SSL1 :https://www.mygreendot.com/greendot/getacardnow?utm_source=CR001&utm_medium=V101&utm_term=pebfl&utm_content=ADD-CREATIVE-ID-HERE&utm_campaign=100316311d
ssl2:http://android.git.kernel.org/?p=platform/packages/apps/Browser.git;a=blob;f=src/com/android/browser/BrowserActivity.java
ss3:http://www.iteye.com/problems/40424
商永社 18:18:44
http://www.phonegap.com/apps
商永社 18:19:10
http://www.sencha.com/products/touch/demos.php
华章培训网:http://www.hztraining.com/bbs/showtopic-29.aspx
多个开源:http://www.netmite.com/android/mydroid/packages/apps/
USB Lan 驱动,使得PC可以连接手机,从以下地址可以下载到:
http://www.belcarra.com/host.html
以下这篇文章是MOTO的机器作为手机摄像头的说明档,从其中我们可以看出 要完成该任务需要那些部分的软件支持
手机摄像头软件下载及安装方法一、所需软件:
1.MotoVision下载地址:http://www.cpcw.com/xz /MotoVision.rar
这个压缩包里包含了MotoVision.exe和MotoVision.mpkg两个文件。前者用于pc端的安装,包括了pc端的虚拟摄像头驱动程序和手机连接程序,后者是手机端的安装文件。
2.MVDS下载地址:http://www.cpcw.com /xz/MVDS.rar
这是用于pc端的手机连接程序,作用和MotoVision里的手机连接程序一样,不是必需的,但它增加了预览功能,并可以缩小到任务栏中,用起来方便。
3.USBLAN下载地址:http://www.cpcw.com/xz/USBLAN.rar
用于摩托罗拉A系列和E系列Linux智能手机的USB网卡驱动程序。
4.FullScrVideo.jar下载地址:http://www.cpcw.com/xz/FullScrVideo.jar
这个软件不是必需的,它是一个用在手机端的全屏取景 Java程序,有了它,你在用手机摄像头时就可以把讨厌的菜单给隐蔽了,它还拥有暂停摄像头的功能。
二、手机端软件的安装:
解压 MotoVision.rar文件后,用“USB大容量存储器”模式连接手机和PC,将其中的MotoVision.mpkg改
名为 MotoVision.pkg并复制到手机中,同时也可以将FullScrVideo.jar一并复制。(注意:手机端需安
装mpkg程序)在手机上点住MotoVision.pkg文件,弹出菜单后选择打开方式命令,在对话框中选择打开方式为“mpkg安装”,然后可以听到手机发出“mpkg文件安装成功”的声音提示。另外别忘了安装
FullScrVideo.jar,这个程序和普通的Java程序安装方式是一样的,直接点击就行了。然后将手机重新
启动,你就可以在手机“办公”组件中找到MotoVision程序图标了。
三、PC端的安装设置
1.安装虚拟摄像头驱动程序
在pc端运行MotoVision.exe文件,安装虚拟摄像头的驱动程序和手机连接程序。安装完成后,我们便可以在计算机“设备管理器”的“声音、视频和游戏控制器”中找到一个名为MotoVision For E680/680I,
A780/760 /768Virtual Camera"的设备。如果安装不成功,可以到C:\Program Files\MotoVision目录,运行 InstallBtLan.BAT、InstallDP.BAT、InstallMV.BAT这三个批处理文件进行手动安装。
2.安装 USBLAN驱动
解压USBLAN压缩包,先安装usblanMOTO目录下的执行文件,然后再将USBLAN文件下的所有文件覆盖至软件安装目录(C:\Program Files\Belcarra\USBLAN)。
接下来在手机上将连接模式切换到“Modem"模式,并通过数据线连接电脑。点击手机上的MotoVision图标,之后电脑会提示发现新硬件,在弹出的“找到新的硬件向导”中选择“从列表或指定位置安装”,
并指定系统在C:\Program Files\Belcarra\USBLAN目录中搜索该硬件的驱动程序。安装完成后,可在设备管理器的网络适配器中看到名为“Belcarra USB LAN LINK”的设备。(如果以前安装过USBLAN驱动,还需要再安装一次USBLAN驱动,否则虚拟摄像头会显示黑屏)。
四、手机摄像头的使用
先在“Modem”模式下将手机和电脑连接,然后运行手机上的MotoVision程序,在PC端运行 MVDS程序(也可以使用开始菜单MotoVision组件中的手机连接器“,程序运行后,MVDS程序窗口(或MotoVision手机连接器窗口)会出现手机的画面,说明手机摄像头软件安装成功了。如果想直接获得全屏效果,可运行手机上的全屏摄像头程序,就不会出现照相程序菜单了。
注意:如果电脑和手机连接之后,出现了不能上网的问题,这是因为你的网络中使用了DHCP服务,自动给USB网卡分配了IP地址和网关,系统无法找到正确的网络连接。你可以在网络连接中将
Belcarra USB LAN LINK的IP地址设为169.254.142.1,子网掩吗设为 255.255.0.0。问题便可以解决了。
这篇文章总结的不错,只是是英文全文转载了http://www.higherpass.com/Android/Tutorials/Working-With-Android-Contacts/
Introduction To Android Contacts
Learn to work with the Android contacts database. Basic knowledge of accessing SQLite in Android along with using Cursors is expected. See the Android SQLite and Cursor Article for more information. Google changed the contacts database moving from 1.x to 2.0 versions of Android. This tutorial will be broken into 3 sections. First covering accessing contacts in Android 2.0. The second page will deal with accessing the contacts in Android 1.6 and before. Third we'll glue it all together with a class that abstracts specific classes for each version and a set of classes to manage the data from the contact records.
Create a new project called TestContacts in Eclipse setup for Android 2.0.
Android Contact API For 2.0 Granting AccessBefore an application can query the contact records access must be granted through the AndroidManifest.xml file stored in the root of the project. Add the following uses-permission belows the uses-sdk statement.
<uses-permission android:name="android.permission.READ_CONTACTS" />Querying The Android Contact Database Retrieving Contact Details
Basic contact information stored in Contacts table with detailed information stored in individual tables for normalization. In Android 2.0 to query the base contact records the URI to query is stored in ContactsContract.Contacts.CONTENT_URI.
package higherpass.TestContacts; import android.app.Activity; import android.content.ContentResolver; import android.database.Cursor; import android.os.Bundle; import android.provider.ContactsContract; public class TestContacts extends Activity { /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); ContentResolver cr = getContentResolver(); Cursor cur = cr.query(ContactsContract.Contacts.CONTENT_URI, null, null, null, null); if (cur.getCount() > 0) { while (cur.moveToNext()) { String id = cur.getString( cur.getColumnIndex(ContactsContract.Contacts._ID)); String name = cur.getString( cur.getColumnIndex(ContactsContract.Contacts.DISPLAY_NAME)); if (Integer.parseInt(cur.getString(cur.getColumnIndex(ContactsContract.Contacts.HAS_PHONE_NUMBER))) > 0) { //Query phone here. Covered next } } } } }
This application starts off as any other Android application. First create a ContentResolver isntance in cr. Then use the ContentResolver instance to query the database and return a Cursor with the contacts list. The query is perofrmed against the URI stored in ContactsContract.Contacts.CONTENT_URI. Next check if the cursor contains records and if so loop through them. The record ID field is stored in the id variable. This will be used as a where parameter later. Also the display name field is stored in the string name. For more details about working with cursors see Android Cursors Tutorial.
Phone NumbersPhone numbers are stored in their own table and need to be queried separately. To query the phone number table use the URI stored in the SDK variable ContactsContract.CommonDataKinds.Phone.CONTENT_URI. Use a WHERE conditional to get the phone numbers for the specified contact.
if (Integer.parseInt(cur.getString( cur.getColumnIndex(ContactsContract.Contacts.HAS_PHONE_NUMBER))) > 0) { Cursor pCur = cr.query( ContactsContract.CommonDataKinds.Phone.CONTENT_URI, null, ContactsContract.CommonDataKinds.Phone.CONTACT_ID +" = ?", new String[]{id}, null); while (pCur.moveToNext()) { // Do something with phones } pCur.close(); }
Perform a second query against the Android contacts SQLite database. The phone numbers are queried against the URI stored in ContactsContract.CommonDataKinds.Phone.CONTENT_URI. The contact ID is stored in the phone table as ContactsContract.CommonDataKinds.Phone.CONTACT_ID and the WHERE clause is used to limit the data returned.
Email AddressesQuerying email addresses is similar to phone numbers. A query must be performed to get email addresses from the database. Query the URI stored in ContactsContract.CommonDataKinds.Email.CONTENT_URI to query the email address table.
Cursor emailCur = cr.query( ContactsContract.CommonDataKinds.Email.CONTENT_URI, null, ContactsContract.CommonDataKinds.Email.CONTACT_ID + " = ?", new String[]{id}, null); while (emailCur.moveToNext()) { // This would allow you get several email addresses // if the email addresses were stored in an array String email = emailCur.getString( emailCur.getColumnIndex(ContactsContract.CommonDataKinds.Email.DATA)); String emailType = emailCur.getString( emailCur.getColumnIndex(ContactsContract.CommonDataKinds.Email.TYPE)); } emailCur.close();
As with the phone query the field names for the email table are also stored under ContactsContract.CommonDataKinds. The email query is performed on the URI in ContactsContract.CommonDataKinds.Email.CONTENT_URI and the WHERE clause has to match the ContactsContract.CommonDataKinds.Email.CONTACT_ID field. Since multiple email addresses can be stored loop through the records returned in the Cursor.
NotesCustom notes can be attached to each contact record. As before these are stored in a separate table and are related based on the contact ID.
String noteWhere = ContactsContract.Data.CONTACT_ID + " = ? AND " + ContactsContract.Data.MIMETYPE + " = ?"; String[] noteWhereParams = new String[]{id, ContactsContract.CommonDataKinds.Note.CONTENT_ITEM_TYPE}; Cursor noteCur = cr.query(ContactsContract.Data.CONTENT_URI, null, noteWhere, noteWhereParams, null); if (noteCur.moveToFirst()) { String note = noteCur.getString(noteCur.getColumnIndex(ContactsContract.CommonDataKinds.Note.NOTE)); } noteCur.close();
Notes are stored in the Android Contacts generic data table. When accessing specific data the WHERE clause will need 2 conditionals. First the standard contact ID, second a MIMETYPE for the data that is being requested. The Android SDK comes with a series of auto-generated variables that take care of this. Use the ContactsContract.CommonDataKinds.Note.CONTENT_ITEM_TYPE variable to limit the query to note records. The data table URI is stored at ContactsContract.Data.CONTENT_URI. Finally the note field name is stored in ContactsContract.CommonDataKinds.Note.NOTE.
Postal AddressesAndroid can store multiple postal addresses per contact. Addresses are also stored in the data table like notes and queried via the URI stored in ContactsContract.Data.CONTENT_URI. Similar to the notes query a MIMETYPE must be added to the WHERE conditional. Also in Android 2.0 the Address record was split into multiple fields containing different parts of the address (PO-Box, stree, city, region, postal code). In earlier versions of the Android SDK this was a free-form string storage.
String addrWhere = ContactsContract.Data.CONTACT_ID + " = ? AND " + ContactsContract.Data.MIMETYPE + " = ?"; String[] addrWhereParams = new String[]{id, ContactsContract.CommonDataKinds.StructuredPostal.CONTENT_ITEM_TYPE}; Cursor addrCur = cr.query(ContactsContract.Data.CONTENT_URI, null, where, whereParameters, null); while(addrCur.moveToNext()) { String poBox = addrCur.getString( addrCur.getColumnIndex(ContactsContract.CommonDataKinds.StructuredPostal.POBOX)); String street = addrCur.getString( addrCur.getColumnIndex(ContactsContract.CommonDataKinds.StructuredPostal.STREET)); String city = addrCur.getString( addrCur.getColumnIndex(ContactsContract.CommonDataKinds.StructuredPostal.CITY)); String state = addrCur.getString( addrCur.getColumnIndex(ContactsContract.CommonDataKinds.StructuredPostal.REGION)); String postalCode = addrCur.getString( addrCur.getColumnIndex(ContactsContract.CommonDataKinds.StructuredPostal.POSTCODE)); String country = addrCur.getString( addrCur.getColumnIndex(ContactsContract.CommonDataKinds.StructuredPostal.COUNTRY)); String type = addrCur.getString( addrCur.getColumnIndex(ContactsContract.CommonDataKinds.StructuredPostal.TYPE)); } addrCur.close();
This code is similar to the previous example. Notice the field names for the address pieces are stored in ContactsContract.CommonDataKinds.StructuredPostal.
Instant Messenger (IM)The instant messenger query performs just as the notes and address queries. Important field names for IM related data are stored in ContactsContract.CommonDataKinds.Im.
String imWhere = ContactsContract.Data.CONTACT_ID + " = ? AND " + ContactsContract.Data.MIMETYPE + " = ?"; String[] imWhereParams = new String[]{id, ContactsContract.CommonDataKinds.Im.CONTENT_ITEM_TYPE}; Cursor imCur = cr.query(ContactsContract.Data.CONTENT_URI, null, imWhere, imWhereParams, null); if (imCur.moveToFirst()) { String imName = imCur.getString( imCur.getColumnIndex(ContactsContract.CommonDataKinds.Im.DATA)); String imType; imType = imCur.getString( imCur.getColumnIndex(ContactsContract.CommonDataKinds.Im.TYPE)); } imCur.close();
Organizations
The last part of the contact record to be covered is the Organizations data. The Android contact record can contain information about Employment, professional, and social memberships as well as roles and titles. These records are queried from the URI stored in ContactsContract.Data.CONTENT_URI. Important field names for the organization data are stored in ContactsContract.CommonDataKinds.Organization.
String orgWhere = ContactsContract.Data.CONTACT_ID + " = ? AND " + ContactsContract.Data.MIMETYPE + " = ?"; String[] orgWhereParams = new String[]{id, ContactsContract.CommonDataKinds.Organization.CONTENT_ITEM_TYPE}; Cursor orgCur = cr.query(ContactsContract.Data.CONTENT_URI, null, orgWhere, orgWhereParams, null); if (orgCur.moveToFirst()) { String orgName = orgCur.getString(orgCur.getColumnIndex(ContactsContract.CommonDataKinds.Organization.DATA)); String title = orgCur.getString(orgCur.getColumnIndex(ContactsContract.CommonDataKinds.Organization.TITLE)); } orgCur.close();