Android高手进阶教程
andriod 秘笈
![andriod 秘笈](https://img.taocdn.com/s3/m/069fdd1a964bcf84b9d57bd1.png)
若是你敌手机拨号屏幕功能性有特别要求,Android尽对会满足你,点击联系人列表里肆意一个用户,按手机menu >选项,里面有关于单个联系人的具体设置。
3.为每个联系人定制铃声
可觉得女伴侣或家人设置伶仃的铃声,如许听到铃声就知道谁来电话了。设置编制点击联系人列表里肆意一个用户,然后便可以设置铃声。
一块来作为终究的壁纸图片。
46.Android系统最新运行的法度列表
15.搜刮网页特定内容
在浏览器设置>更多>查找 选项可以用来搜刮网页内容里的特定字段,帮忙你快速查找相干内容,这也是PC浏览器的标准功能之一。
16.语音输进
Android 2.1系统开端撑持语音输进功能,固然措置起来有些延时,若是你勤加操练还是可以做到根基精确输进,这对操练英语口语的同窗也是一条路子。
13.设置双击屏幕放大的级别
尽大大都不撑持多点触摸的Android手机,在利用浏览器浏览网页时都可以经由过程双击屏幕放大网页内容,并且你还可以在浏览器设置里“默许缩放”选项选择三种放大级别,如许每次利用双击放大时的结果都分歧。
14.改变Android浏览器字体
Android手机终端千差万别,分歧屏幕和辩白率的手机最好的浏览字体都分歧,只需要在浏览器设置里设置合适的字体大小,便可以进步浏览效力。
44.删除和或人的整条短信对话
若是手机短信里埋没了不成高人的奥秘,回家又不想被老婆发现。长按这条短信对话列表,然后选择删除,所有和对方发的短信城市被删除。
45.利用本身的图片做壁纸
拍了一张很棒的风光照,或想把家人的照片用来作为壁纸,只要长按手机屏幕,选择壁纸,然后选择你想用来做壁纸的图片便可以完成操纵,设置壁纸前你乃至可以剪切此中的
安卓20个玩机小技巧
![安卓20个玩机小技巧](https://img.taocdn.com/s3/m/a4c12b00bb68a98271fefa4d.png)
Android 4.0系统的20个不得不看使用小技巧安卓4.0操作系统,它的一大卖点就是整合所有硬件的使用体验,无论是低端智能手机还是高端智能手机,只要运行Android ICS操作系统,用户都能享受到同样的体验。
但是,基于制造商不同,即使是相同的操作系统,同样的功能,不同的手机会有不同的访问方法。
这也是我们看到三星和HTC的Android 4智能手机软件外观有所不同的原因。
今天小编为您介绍一下“冰淇淋三明治”系统的几个使用技巧。
方法/步骤1.浏览器“快速控制”启用浏览器的“快速控制”功能后,浏览器顶部的网址会消息,只要点击画面边缘,就会出现半圆形选项单,用来操作网页。
这样,就为我们提供给了更大的页面显示空间。
2.长按卸载你可以按住程序列表中的某个应用程序并将其拖动到主屏上,然后屏幕上方会跳出一些列选项菜单。
其实,你可以在“应用程序信息”窗口查看每个应用程序占有的内存,或者卸载它们。
3.Android屏保程序要激活屏保功能,只需在“关于屏幕”页面,选定“Android版本选项卡”即可,你会看到飞行的Android机器人出现在屏幕上。
4.倒置渲染保存你的眼睛倒置渲染就是,让页面变成黑色而文本变成白色的方法。
这样不仅能够节电,还能够保护眼睛少受伤害。
5.短信拒绝来电让你正在Twitter上发帖或做什么时,突然来了个电话,你不得不中止现在的操作,让人十分恼火。
Amdroid 4.0具备一个用短信拒绝来电功能,技能让你继续现在手头的操作,又能礼貌不伤和气的拒绝接听电话。
6.取消自动安装应用程序图标ICS操作系统有这样一个功能,当你安装了一个应用程序后,该应用程序的快捷方式就自动添加到Home屏幕上。
但如果你不想自己的主屏上充斥着各种快捷图标,你可以在应用程序“设置”中,勾选掉“自动添加快捷方式”。
7.通知窗口中的设置快捷键在系统的通知窗口,有一个设置图标,这图标并不仅仅是摆设。
这是连接到你手机或平板设置界面的快捷键。
Android玩机达人必备的30条经验
![Android玩机达人必备的30条经验](https://img.taocdn.com/s3/m/1a898903bed5b9f3f90f1c93.png)
Android玩机达人必备的30条经验自2年前android系统风行以来,现在越来越多人使用上了android系统的手机,但是有些操作和使用还是让很多刚接触的菜鸟用户感到复杂。
通过平常以及网上收集的一些信息,总结了30个android机的小技巧希望大家能学习到这些东西。
对了这些技巧和秘籍大部分都是针对目前最主流的Android 2.1系统,当然一般其他版本的也可适用。
1.跳过Android滑动解锁屏幕Android手机用户一般都采用滑动解锁屏幕的方式来唤醒手机,不过你可能不知道按两下手机的Menu键也有同样的效果,前提是你的手机制造商没有移除这个功能,很多装载HTCSense手机可能无法使用这个特性。
2.使用Android电源管理widget从Android 2.1系统开始内置了一个非常强大的带能源管理widget,通过这个widget你可以快速开启或者关闭Wi-Fi,蓝牙,GPS,同步这些手机耗电大户,还可以方便的设定手机屏幕亮度,长按手机屏幕,就可以在widgets目录选择启用。
3.用文件夹组织内容虽然乔布斯花了很久才决定放开iOS用户通过文件夹组织内容的权限,事实上Android从面世开始就支持这个功能,Android文件夹不但支持放入程序图标,还可以存放通讯录,甚至facebook联系人等信息,长按手机屏幕就可以在桌面建立文件夹。
4.查看系统日期Android新用户可能觉得查看系统日期有点麻烦,其实只要按住屏幕顶部左上方的提醒栏,就会显示今天的日期,赶快试试吧。
5.挂载你的SD卡Android系统基于Linux内核,所以使用外部磁盘之前必须要mount挂载后才可以正常使用。
使用USB线连接手机和电脑时,手机会提示挂载SD卡,必须点击完成挂载后才可以在SD 卡里拷贝或者删除数据。
6.设置键盘快捷方式很多用户迷恋物理全键盘的另外一个重要原因就是Android支持大量的键盘快捷键,通过快捷键可以快速调用相关程序,可以在系统设置>应用程序>快速启动里设置7.快速切换主屏Android系统一般提供5个主屏,或许你觉得每次滑动手指切换太麻烦,可以按一下home 键,然后就可以选择进入特定的主屏,HTC Sense的手机还支持多点触摸调出所有主屏幕供选择。
android2.2刷机教程
![android2.2刷机教程](https://img.taocdn.com/s3/m/e820472abcd126fff7050bb2.png)
Htc desire 制作金卡、root、升级2.2系统的一条龙教程声明:1、此贴非本人原创,而是综合许多作者成果并结合自己升级过程中解决所遇到问题经验而成的(本人已成功升级),希望对想升级2.2的机友有帮助。
2、让我们对那些辛勤付出的原创高手们表示崇高的敬意和衷心的感谢。
3、刷机有风险,此贴仅供学习交流之用,不提倡按此刷机,刷机过程有很多意外因素,如按此教程刷机出现不良后果自负。
入门:1、请先安装ANDROID驱动,可以用通用驱动或HTC Sync(内含驱动的)。
保证你的手机能被电脑识别。
下载地址:/hk-tc/SupportDownload.aspx?p_id= 312&cat=3&dl_id=9332、请使用安装了WINDOWS XP的电脑(其他系统我没试过,不知道怎么用。
)3、有个金士顿、SANDISK的原装TF卡。
4、网络连接,有些要上网找资源、下载软件的。
5、耐心加细心。
正式开始第一步:制作金卡。
关于什么是金卡,坛子里有很多介绍,希望朋友们善用搜索引擎,在搜索引擎里搜索一下“制作金卡教程” 等即可查到。
我这里简单地解释一下流程,其中某些步骤比网上的教程要简单,容易多了。
1、将TF卡插入你的G7中,注意,TF卡最好为金士顿、SANDISK等名牌非假货TF卡。
2、在Market里下载Estrongs或类似的资源管理器,以文本形式打开/sys/class/mmc_host/mmc*/mmc*:*/cid 文件。
这个* 可能是数字或字母(网上教程说这里都是1或0,比如/sys/class/mmc_host/mmc0/mmc0:1/cid,这个是不准确的),这个文件打开来是一个32位的字符,中英混合的,记下这一串字符。
(这个文件可能不好找,大家多找找)找到以后就把卡拔下,用读卡器插入电脑中,或者直接用手机以磁盘管理器模式连接电脑。
并拔下电脑上除了你的TF卡以外的其他U盘、移动硬盘,方便后面的辨认。
安卓软件汉化+去广告教程 测试文件已上传
![安卓软件汉化+去广告教程 测试文件已上传](https://img.taocdn.com/s3/m/dce86b0752ea551810a687fa.png)
点击可放大)
2011-11-24 15:03上传
下载附件(80.95 KB)
发送到手机
先安装Notepad++,安装后运行,安下面的图片设置中文:(如果发现运行不了,请下载
Microsoft .NET Framework 2.0点我下载
2011-11-24 14:41上传
下载附件(211.16 KB)
发送到手机
修改后的结果:
2011-11-24 14:41上传
下载附件(16.76 KB)
发送到手机
保存后打包签名就可以了,总的汉化+去广告教程就到这里了。
==============================================
1、APKtool(对软件进行解包和打包)
2、Notepad++(对语言包进行汉化用)
汉化的过程
简要过程:解包(反编译)软件→对语言包进行汉化→打包(编译)→签名。
详细过程:
安装好JAVA,并把解压得到的APKtool文件夹复制到D盘(记得要是D盘哦,不然里面我做好
的”添加中文语言包.bat"批处理会用不了,等以后大家熟练了就可以自己修改了),然后入
文的语言包“values-zh-rCN",进入values-zh-rCN文件夹,有两个文件arrays.xml和strings.xml。
(这两个文件实际是从values文件夹复制过来的)
我们要汉化的就是这两个文件,有的软件可能会没有arrays.xml文件,那样就只汉化strings.xml
就可以了。
可能会出现下图的情况:
高级程序员修炼之道-Android培训系列课程之ContentProvider2
![高级程序员修炼之道-Android培训系列课程之ContentProvider2](https://img.taocdn.com/s3/m/dd21f924ed630b1c59eeb5d1.png)
Content Provider1 ContentProvider ContentProvide2 ContentProvider3 Android ContentProviderContentProviderquery(),insert(),update(),delete(),getType(),onCreate()URI1 ContentProvider URI URI ContentProvider2 Android ContentProvider android.provider A B C D 4A Content Provider "content://"B URI Content Provider URI authorities ContentProvider . ;"content://hx.android.text.myprovider"C ok "content://hx.android.text.myprovider/tablename"D URI ID id ID "content://hx.android.text.myprovider/tablename/#" # idContentProviderContentProvider ContentProvider1 CONTENT_URI ContentProviderpublic static final Uri CONTENT_URI =Uri.parse("content://com.example.codelab.transportationprovider");contentCom.exmaple.codelab.transportationproviderUri.parse UriProvider CONTENT_URIcontent://com.example.codelab.transportationprovider/traincontent://com.example.codelab.transportationprovider/air/domesticcontent://com.example.codelab.transportationprovider/air/international_id2 ContentProviderpublic class FirstContentProvider extends ContentProviderContentProvider UriMatcher UriMatcher match(Uri uri) Uri Uri Uripublic static final UriMatcher uriMatcher;static{uriMatcher=n ew U riMatcher(UriMatcher.NO_MATCH);uriMatcher.addURI(Book.AUTHORITY,"item",B ook.ITEM);uriMatcher.addURI(Book.AUTHORITY,"item/#",B ook.ITEM_ID);}UriMatcher ContentProvider Uri match() -1 UriMatcher.NO_MATCH addURI() URI ContentProvider AUTHORITY # * match() URIsMatcher.addURI(“com.test.provider.personprovider”, “person”, 1); match()content://com.test.provider.personprovider/person 13 query,insert,update,delete,getType onCreate4 AndroidManifest.xml<!-- android:name ContentProviderandroid:authorities FirstProvidermetaData AUTHORITY--><provider android:name="com.bj.FirstContentProvider"android:authorities="com.bj.firstcontentprovider"/>Activity19Activity.javapublic class Activity19Activity extends Activity {private Button queryButton = null;private Button insertButton = null;@Overridepublic void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(yout.main);queryButton = (Button) this.findViewById(R.id.query);queryButton.setOnClickListener(newQueryListener());insertButton = (Button) this.findViewById(R.id.insert);insertButton.setOnClickListener(newInsertListener());System.out.println(getContentResolver().getType(erTableMetaData.CONTENT_U RI));}class InsertListener implementsOnClickListener {@Overridepublic void onClick(View v) {// TODOAuto-generated method stubContentValues values = new ContentValues();values.put(ER_NAME,"michal");Uri uri = getContentResolver().insert(erTableMetaData.CONTENT_URI,values);System.out.println("uri--->" + uri.toString());}}class QueryListener implementsOnClickListener {public void onClick(View v) {Cursor c = getContentResolver().query(erTableMetaData.CONTENT_URI, null,null, null, null);while (c.moveToNext()) {System.out.println(c.getString(c.getColumnIndex("username")));}}}}FirstContentProvider.javapublic class FirstContentProvider extendsContentProvider {// ContentProvider Uri UriMatcher // uripublic static final UriMatcher uriMatcher;//public static final int INCOMING_USER_COLLECTION = 1;public static final int INCOMING_USER_SINGLE = 2;private DatabaseHelper dh;static {// users /uriMatcher = new UriMatcher(UriMatcher.NO_MATCH);uriMatcher.addURI(FirstProvidermetaData.AUTHORITY, "users",INCOMING_USER_COLLECTION);uriMatcher.addURI(FirstProvidermetaData.AUTHORITY, "users/#",INCOMING_USER_SINGLE);}// sql//public static HashMap<String,String> userProjectionMap;static{userProjectionMap = newHashMap<String,String>();userProjectionMap.put(UserTableMetaData._ID, UserTableMetaData._ID ); userProjectionMap.put(ER_NAME, ER_NAME); }@Overridepublic int delete(Uri uri, String selection, String[] selectionArgs) {// TODOAuto-generated method stubSystem.out.println("delete");return 0;}// URI URI// URI@Overridepublic String getType(Uri uri) {// TODOAuto-generated method stubSystem.out.println("getType");switch (uriMatcher.match(uri)) {case INCOMING_USER_COLLECTION:// UserTableMetaData FirstProvidermetaDatareturn UserTableMetaData.CONTENT_TYPE;case INCOMING_USER_SINGLE:return UserTableMetaData.CONTENT_TYPE_ITEM;default:throw new IllegalArgumentException("Unknown uri" + uri);}}@Overridepublic Uri insert(Uri uri, ContentValues values) {// TODOAuto-generated method stubSystem.out.println("insert");SQLiteDatabase db = dh.getWritableDatabase();// -1long rowId = db.insert(UserTableMetaData.TABLE_NAME,null, values);if(rowId>0){// rowId//contentUris UriUri insertedUserUri = ContentUris.withAppendedId(UserTableMetaData.CONTENT_URI, rowId); //getContext().getContentResolver().notifyChange(insertedUserUri, null);return insertedUserUri;}throw new SQLException("Failed to insert row into "+uri);}// ContentProvider// DatabaseHelper@Overridepublic boolean onCreate() {// TODOAuto-generated method stub//getContext contextdh = new DatabaseHelper(getContext(),FirstProvidermetaData.DATABASE_NAME);System.out.println("on create");SQLiteDatabase db = dh.getReadableDatabase();return true;}//projection//selection:where ?//selectionArgs://sortOrder:@Overridepublic Cursor query(Uri uri, String[] projection, String selection,String[] selectionArgs, String sortOrder) {// TODOAuto-generated method stubSystem.out.println("query");//SQLiteQueryBuilder qb = new SQLiteQueryBuilder();switch(uriMatcher.match(uri)){case INCOMING_USER_COLLECTION://qb.setTables(UserTableMetaData.TABLE_NAME);qb.setProjectionMap(userProjectionMap);break;case INCOMING_USER_SINGLE:qb.setTables(UserTableMetaData.TABLE_NAME);qb.setProjectionMap(userProjectionMap);// where getPathSegments uri path content:XXX/user/1 get(1) 1 qb.appendWhere(UserTableMetaData._ID+"="+uri.getPathSegments().get(1));break;}String orderBy;if(TextUtils.isEmpty(sortOrder)){orderBy = UserTableMetaData.DEFAULT_SORT_ORDER;}else{orderBy = sortOrder;}SQLiteDatabase db = dh.getWritableDatabase();// query qbCursor c = qb.query(db, projection, selection, selectionArgs, null, null, orderBy);//c.setNotificationUri(getContext().getContentResolver(), uri);System.out.println("query");return c;}@Overridepublic int update(Uri uri, ContentValues values, String selection,String[] selectionArgs) {// TODOAuto-generated method stubreturn 0;}}FirstProvidermetaData.javapublic class FirstProvidermetaData {public static final String AUTHORITY="com.bj.firstcontentprovider"; // contentprovider //public static final String DATABASE_NAME = "FirstProvider.db";//public static final int DATABASE_VERSION = 1;//public static final String USERS_TABLE_NAME = "users";public static final class UserTableMetaData implements BaseColumns{//public static final String TABLE_NAME="users";// ContentProvider URIpublic static final Uri CONTENT_URI=Uri.parse("content://"+AUTHORITY+"/users");public static final String CONTENT_TYPE="vnd.android.cursor.dir/er";public static final String CONTENT_TYPE_ITEM="vnd.android.cursor.item/er";// users namepublic static final String USER_NAME="name";//public static final String DEFAULT_SORT_ORDER="_id desc";}}。
Android手机玩家入门手册
![Android手机玩家入门手册](https://img.taocdn.com/s3/m/25f1a8d626fff705cc170adf.png)
Android 系统手机玩家入门手册(以HTC 为例)一、 新手入门(一)桌面管理1.添加桌面图标Android 系统的主要特点之一是“实现个性化的应用设定”,每个人都可以依据自己的习惯来定制自己的个性化桌面。
操作方法:打开应用程序菜单,找到想要添加至桌面的图标,按住图标不放(图1),感到一下震动之后图标即可移动至桌面,然后拖到你想要安放的位置就可以松手了(图2),整个操作过程中切记一定要按住图标不能放哦!在当前屏幕已经放满的前提下你还能左右滑动拖到其他空闲的屏幕下(图3)。
若要删除图标,也只需长按住图标,直接拖到垃圾桶即可(图4)。
图1 图2 图3 图42.添加桌面快捷方式眼下很多网站都推出了独立的客户端供客户下载使用,非常方便。
但有些我们平时经常要登录的网站并没有客户端可下,每次上网都要输网址,即使把它加为书签,也要先打开浏览器,再打开书签后才能登录网页,这个过程也较繁琐。
如果现在可以直接把书签做成一个桌面的客户端,下次只要直接点击“客户端”登录,是不是很方便呢?下面让我们一起来看下如何制作桌面客户端吧:第一步:添加书签(注:必须通过手机自带浏览器才能添加桌面快捷方式,如图1)打开手机自带浏览器(或使用谷歌内核的浏览器,如“海豚浏览器”),输入常用网址(如新浪网,图2),按MENU 键选择“添加书签”(图3),直接点“完成”(图4)书签就添加成功了。
图1 图2 图3 图4 第二步:添加桌面快捷方式回到主屏蔽,按MENU菜单键,选择添加到主页(图5)——快捷方式(图6)——书签(图7)——选择要添加的书签“新浪网”(图8),这样桌面快捷方式就添加成功了,下次您只需一键就可以登录新浪网了,是不是很简单呢?图5 图6 图7 图8 (二)应用下载下载应用有多种方法,行货手机有品牌自带的软件商店,如HTC商城(水货手机有自带的电子市场),另外我们还可以通过下载第三方的软件商店来下载丰富的应用程序,比如“安卓市场”、“安智市场”、“机锋市场”等等,另外还有一些网站也有安卓下载专区可以下载应用,比如UC浏览器等。
安卓系统基本操作方法
![安卓系统基本操作方法](https://img.taocdn.com/s3/m/b4566b2c59fafab069dc5022aaea998fcc2240db.png)
安卓系统基本操作方法安卓系统是目前使用最为广泛的智能手机操作系统之一,其操作方法相对简单易学。
以下是安卓系统的基本操作方法。
1. 开关机和解锁手机:- 开机:长按手机的电源键,待手机屏幕亮起后,输入解锁密码或指纹验证,即可进入主屏界面。
- 关机:长按电源键,选择关机选项,确认即可关机。
- 解锁:滑动屏幕上的锁屏图标或输入解锁密码/指纹,即可解锁手机。
有些手机还支持面部识别、虹膜解锁等方式。
2. 主屏界面和应用程序:- 主屏界面:打开手机后,即进入主屏界面。
主屏界面上通常有多个桌面,可以滑动屏幕左右切换,桌面上可添加各种小部件、快捷方式和文件夹。
- 应用程序:应用程序通常在主屏界面底部的导航栏或者桌面上的应用图标中。
点击桌面上的应用图标即可打开应用程序。
3. 手势操作:- 滑动手势:- 上滑:打开通知栏,显示通知消息和快捷开关,可设置Wi-Fi、蓝牙、屏幕亮度等。
- 下滑:打开快捷设置栏,可直接操作部分设置,如飞行模式、静音、自动旋转等。
- 左右滑动:在主屏界面左右滑动,可以切换桌面。
- 按压手势:- 长按:长按应用图标或者桌面元素,可以打开上下文菜单,进行应用程序的管理和操作。
- 多指手势:- 放大缩小:使用两指进行放大或缩小屏幕上的内容,如网页、图片等。
4. 应用管理和切换:- 后台管理:长按主屏界面的菜单键或者点击底部导航栏的多任务按钮(方形图标)可以打开后台管理界面,显示所有已经打开的应用程序。
在这里可以进行切换和关闭应用程序。
- 返回键:点击屏幕下方的返回键,可以返回上一级菜单或者关闭当前应用程序。
5. 设置菜单:- 打开设置菜单:点击主屏界面上的设置图标(有时是齿轮图标),即可进入设置菜单。
- 常用设置选项:在设置菜单中,可以对语言和输入、Wi-Fi、蓝牙、声音、显示等设置进行调整和配置。
6. 通知中心和快速设置:- 通知中心:滑动屏幕顶部的状态栏,可以打开通知中心,显示各种通知消息和快速设置。
安卓个性化刷机包ROM修改教程【完美版】
![安卓个性化刷机包ROM修改教程【完美版】](https://img.taocdn.com/s3/m/b31a3f1853ea551810a6f524ccbff121dd36c54b.png)
安卓个性化刷机包ROM修改教程本教程分成三个阶段:“删删减减入门篇”、“告别小白基础篇”以及“完全定制进阶篇”,以满足不同层次的机油选学。
提示:入门篇不需要下载任何工具即可定制;基础篇需要用到论坛大大们出品的工具;进阶篇需要配置计算机环境以及大神们制作ROM用的工具,最好有一定的英语基础!确认:本教程需要简单的计算机基础,太太太小白的同志9不要提问鸟。
本贴不设答疑,如果本教程都看不懂,要么百度,要么请放弃,用现成的ROM吧!确认要学就跟我来吧~~重申:刷机有风险,学成后,发布ROM前请先亲测!删删减减入门篇:本教程是最最简单的定制教程,准确一点说,都不能称之为定制,最多叫修改ROM。
方法很简单,只要你的计算机上有预装WINRAR压缩工具即可实现个性化修改。
首先,下载一版比较符号个人喜欢的ROM版本:大神人出品的成品ROM包。
建议选用本人5日发布的华为官方B835版(仅ROOT),这样个人修改后不论操作方便程度还是修改后ROM的稳定性都有保证一些。
然后,双击下载好的ROM包,自动用WINRAR打开,这里注意:不要解压,弹出WINRAR 解压的界面即可!参照本教程提供的路径,就可以开始修改属于你自己的ROM啦!简单吧,那,咱开始?1、删除讨厌的“蟑螂”(预装应用):路径system/app,找到你看不顺眼的应用,右键直接在WINRAR里删除!删除时把**.APK和**.ODEX两个文件一并删除,有些ROM包作者合并了,直接删除就是,如:Tudou.apk。
论坛置顶贴就有对应的目录,这里就不提供了,如果认不得,请百度搞明白是什么再删!(其实这一步很多余,别人发布的ROM般都ROOT了,刷机后在碗豆上删即可,,方便,还不会出错!)2、改字体:路径:system/fonts。
找一个含你喜欢的字体的ROM,同样用WINRAR 找开,直接从一个压缩包拖入你要修改的ROM即可。
新手整个文件夹下的文件全拖入吧~注意:如果要集成应用,应用名不能带中文!3、修改主题和图标:路径:system/framework下有一个framework-res.apk的文件,路径:system/app下有一个SystemUI.apk的文件,方法同2,下一个含你喜欢主题和图标的ROM,直接从一个压缩包拖入你要修改的压缩包替换原文件即可。
menuInflater
![menuInflater](https://img.taocdn.com/s3/m/8fe780e79b89680203d8257b.png)
Android高手进阶教程(六)之----Android 中MenuInflater的使用(布局定义菜单)!MenuInflater用来解析定义在menu 目录下的菜单布局文件我们传统意义上的定义菜单感觉比较繁琐,当我们使用MenuInflater 来生成菜单,你会发现是多么的爽朗,呵呵,我今天的小Demo,是定义四个菜单,并且实现了一个菜单事件。
就是我们点击设置 (Setting )菜单,进入手机设置状态!下面看一下效果图:下面是实现Demo 的详细步骤:一、建立一个Android 工程我们命名为MenuInflaterDemo .二、在res 目录下创建menu 目录,并且创建options_menu.xml (我们定义的菜单)文件,代码如下:view plaincopy to clipboardprint?<?xml version="1.0" encoding="utf-8"?><menuxmlns:android="/apk/res/android"><item android:id="@+id/menu_add"android:title="Add"android:icon="@android:drawable/ic_menu_add"/><item android:id="@+id/menu_wallaper"android:title="Wallpaper"android:icon="@android:drawable/ic_menu_gallery"/><item android:id="@+id/menu_search"android:title="Search"android:icon="@android:drawable/ic_search_category_default"/><item android:id="@+id/menu_setting"android:title="Settings"android:icon="@android:drawable/ic_menu_preferences"/></menu><?xml version="1.0" encoding="utf-8"?><menuxmlns:android="/apk/res/android"><item android:id="@+id/menu_add"android:title="Add"android:icon="@android:drawable/ic_menu_add"/><item android:id="@+id/menu_wallaper"android:title="Wallpaper"android:icon="@android:drawable/ic_menu_gallery"/><item android:id="@+id/menu_search"android:title="Search"android:icon="@android:drawable/ic_search_category_default" /><item android:id="@+id/menu_setting"android:title="Settings"android:icon="@android:drawable/ic_menu_preferences"/></menu>三、主类MenuInflaterDemo.java 的编码,这里写的代码很少哦,我这里只写了第四个菜单(Settings )的响应事件.全部代码如下:view plaincopy to clipboardprint?package com.android.tutor;import android.app.Activity;import android.content.Intent;import android.os.Bundle;import android.view.Menu;import android.view.MenuInflater;import android.view.MenuItem;public class MenuInflaterDemo extends Activity {@Overridepublic void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(yout.main);}@Overridepublic boolean onCreateOptionsMenu(Menu menu) {MenuInflater inflater = getMenuInflater();inflater.inflate(R.menu.options_menu, menu);return true;}@Overridepublic boolean onOptionsItemSelected(MenuItem item) {switch (item.getItemId()) {case R.id.menu_add:break;case R.id.menu_wallaper:break;case R.id.menu_search:break;case R.id.menu_setting:showSettings();break;}return super.onOptionsItemSelected(item);}private void showSettings(){final Intent settings = newIntent(android.provider.Settings.ACTION_SETTINGS);settings.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_RESET_TASK_IF_NEEDED);startActivity(settings);}}package com.android.tutor;import android.app.Activity;import android.content.Intent;import android.os.Bundle;import android.view.Menu;import android.view.MenuInflater;import android.view.MenuItem;public class MenuInflaterDemo extends Activity {@Overridepublic void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(yout.main);}@Overridepublic boolean onCreateOptionsMenu(Menu menu) {MenuInflater inflater = getMenuInflater();inflater.inflate(R.menu.options_menu, menu);return true;}@Overridepublic boolean onOptionsItemSelected(MenuItem item) {switch (item.getItemId()) {case R.id.menu_add:break;case R.id.menu_wallaper:break;case R.id.menu_search:break;case R.id.menu_setting:showSettings();break;}return super.onOptionsItemSelected(item);}private void showSettings(){final Intent settings = newIntent(android.provider.Settings.ACTION_SETTINGS);settings.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_RESET_TASK_IF_NEEDED);startActivity(settings);}}四、运行代码之,点击模拟器上的menu 按钮将会出现上述效果图!。
【Android开发Wiki】进阶篇高效的显示位图(二)—处理来自UI线程的位图
![【Android开发Wiki】进阶篇高效的显示位图(二)—处理来自UI线程的位图](https://img.taocdn.com/s3/m/cc7810a6dd3383c4bb4cd226.png)
如果别的正在运行的任务已经和这个 ImageView 关联,cancelPotentialWork 引用在上面的 代码示例检查中.如果这样,它试图通过调用 cancel()取消先前的任务.在少数情况下,新 的任务数据匹配现有的任务,而且并不需要做什么.下面是实现 cancelPotenttBitmapWorkerTask(),使用以上来检索一个和特定 ImageView 相关的任 务:
1 private static BitmapWorkerTask getBitmapWorkerTask(ImageView imageView) { 2 3 4 5 if (imageView != null) { final Drawable drawable = imageView.getDrawable(); if (drawable instanceof AsyncDrawable) { final AsyncDrawable asyncDrawable = (AsyncDrawable) drawable;
现在这个实现适合使用 ListView 和 GridView 控件组件以及回收其子视图的任何其他组件. 在你正常地给你的 ImageView 控件设置图片时简单地调用 loadBitmap 就行了.例如, 在一个 GridView 中实现的方式是在支持的适配中的 android.view.View, android.view.ViewGroup) getView()方法中. 文章来源:/page/Processing_Bitmaps_Off_the_UI_Thread
1 class BitmapWorkerTask extends AsyncTask { 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 } } } } } public BitmapWorkerTask(ImageView imageView) { private final WeakReference imageViewReference; private int data = 0;
Android从入门到精通100题(含答案和解析)
![Android从入门到精通100题(含答案和解析)](https://img.taocdn.com/s3/m/36c226a8c77da26925c5b018.png)
Android 100题----根据《Android从入门到精通》(一)判断题1.在Eclipse中开发Android应用,需要安装插件AVD来辅助开发。
(×)【ADT(Android Develop Tools);AVD(Android Virtual Device)安卓虚拟设备即模拟器】P202.在Android项目开发时,当res包中的资源发生变化时,需要同时手动修改对应的R文件中的静态内部类中的常量。
(×)P273.Assets包用于保存原始资源文件,其中的文件会编译到.apk中,并且原文件名会被保留。
可以(√)使用URI来定位该文件夹中的文件,然后使用AssetManager类以流的方式来读取文件内容。
4.Drawable子包只用来保存图片资源。
(×)【还会保存XML文件】P2425.Mksdcard命令可以快速创建NTFS磁盘镜像,启动模拟器时加载该磁盘镜像,可以模拟真实设备的SD卡。
(×)【FAT32】P486.使用Mksdcard命令创建的模拟器的SD卡,其最小为9MB,最大为1024GB。
(×)【1023GB】P497.在TableLayout中,可以设置相应的属性使列被隐藏(android:collapseColumns)、收缩(android:shrinkColumns)或拉伸(android:stretchColumns),列序号从0开始,多个列序号之间用“|”分隔。
(×)【列号以“,”分隔】P708.DatePicker对象获取到的月份需要加1,才能表示真正的月份。
(√)P1079.进度条组件(ProcessBar)中的方法incrementProgressBy(int diff)用于设置进度条的增加或减少。
当参数值大于1时,表示进度增加;小于1时,表示进度减少。
(×)【以正负数表示进度的增加或减少】P12410.图像切换器(ImageSwicther),由于不需要显示说明性文字,所以可以使用BaseAdapter基本适配器为其指定图片来源。
Android高手进阶教程
![Android高手进阶教程](https://img.taocdn.com/s3/m/55a18a49852458fb770b5679.png)
Android高手进阶教程(一)-------Android常用名令集锦 (1)Android高手进阶教程(二)之----Android Launcher抽屉类SlidingDrawer的使用 (5)Android高手进阶教程(三)之----Android 中自定义View的应用 (9)Android高手进阶教程(四)之----Android 中自定义属性(attr.xml,TypedArray)的使用 (13)Android高手进阶教程(五)之----Android 中LayoutInflater的使用 (17)Android高手进阶教程(六)之----Android 中MenuInflater的使用(布局定义菜单)! (20)Android高手进阶教程(七)之----Android 中Preferences的使用! (24)Android高手进阶教程(八)之----Android Widget开发案例(世界杯倒计时!) (27)Android高手进阶教程(九)之----Android Handler的使用 (33)Android高手进阶教程(十)之----Android PopupWindow的使用 (36)Android高手进阶教程(十一)之----Android 通用获取Ip的方法(判断手机是否联网的方法) (40)Android高手进阶教程(十二)之----Android 在一个应用中如何启动另外一个已安装的应用 (41)Android 高手进阶教程(十三)之----Android 数据库SQLiteDatabase的使用 (44)Android 高手进阶教程(十四)之----Android Location的使用 (53)Android高手进阶教程(十五)之---通过Location获取Address的使用 (56)Android高手进阶教程(十六)之---Android中万能的BaseAdapter(Spinner,ListView,GridView)的使用! (61)Android高手进阶教程(十七)之---Android中Intent传递对象的两种方法(Serializable,Parcelable) (69)1Android高手进阶教程(一)-------Android常用名令集锦大家好,今天我们要讲的是android开发中,比较常用的名令集锦,在我们开发中难免用到Android命令,有些确实命令确实很有用处。
Android手机从菜鸟到高手
![Android手机从菜鸟到高手](https://img.taocdn.com/s3/m/49da0d054a7302768e993930.png)
Android手机从菜鸟到高手先说几句:Android操作系统是越来越受欢迎,8月份Android统计数据显示其销售已超越iPhone【见/articles/119145.htm】Android前途是一片大好啊。
以下是Android手机的系列回答汇总,希望能助你快速掌握Android知识,晋升Android 高手关于androidAndroid一词的本义指―机器人‖,同时也是Google于2007年11月5日宣布的基于Linux平台的开源手机操作系统的名称,该平台由操作系统、中间件、用户界面和应用软件组成,号称是首个为移动终端打造的真正开放和完整的移动软件。
2008年9月22日,美国运营商T- Mobile USA在纽约正式发布第一款Google手机——T-Mobile G1。
该款手机为台湾宏达电代工制造,是世界上第一部使用Android操作系统的手机,支持WCDMA/HSPA网络,理论下载速率7.2Mbps,并支持Wi-Fi。
Android 是Google开发的基于Linux平台的开源手机操作系统。
它包括操作系统、用户界面和应用程序——移动电话工作所需的全部软件,而且不存在任何以往阻碍移动产业创新的专有权障碍。
Google与开放手机联盟合作开发了Android,这个联盟由包括中国移动、摩托罗拉、高通、宏达电和T-Mobile 在内的30 多家技术和无线应用的领军企业组成。
Google通过与运营商、设备制造商、开发商和其他有关各方结成深层次的合作伙伴关系,希望借助建立标准化、开放式的移动电话软件平台,在移动产业内形成一个开放式的生态系统。
Android 作为谷歌企业战略的重要组成部分,将进一步推进"随时随地为每个人提供信息"这一企业目标的实现。
我们发现,全球为数众多的移动电话用户从未使用过任何基于Android 的电话。
谷歌的目标是让(移动通讯)不依赖于设备甚至平台。
出于这个目的,Android 将补充,而不会替代谷歌长期以来奉行的移动发展战略:通过与全球各地的手机制造商和移动运营商结成合作伙伴,开发既有用又有吸引力的移动服务,并推广这些产品。
Mvc原理和在Android中的应用
![Mvc原理和在Android中的应用](https://img.taocdn.com/s3/m/b7de0085e53a580216fcfecd.png)
对MVC的理解1.模型层(model):对数据库操作,对网络等操作都应在model中处理,对业务的计算等操作都应在该层。
可以简单的理解为Android住的Java文件2.视图层(view):一般采用XML进行描述,使用的时候可以方便的引入,Android中也可以用JavaScript+HTML 等方式作为view 层。
可以简单的理解为Android中Layout文件3.控制层(controller):控制model和view的协调工作。
简单的理解为Android中manifest 文件成为Android高手一般分为六个阶段:第一阶段:熟练掌握Java SE,尤其是对其内部类、线程、并发、网络编程等需要深入研究;熟练掌握基于HTTP协议的编程,清楚POST和GET等请求方式流程和细节;能够进行基本的Java Web编程,如果能够使用Java EE则更好;第二阶段:精通Android的核心API的使用,例如四大组件所涉及的API、Context等,精通核心界面的编程,例如ListView的编程;到达这个阶段已经能够做大部分基本的应用开发了;第三阶段:精通应用框架的原理,尤其是对IoC的理解及其在Android应用框架中的应用,精通基本的23种设计模式在Android中的应用;第四阶段:精通JNI,熟练Android类库中C/C++组件开发;并能够使用JNI机制把现有的C/C++组件移植成为应用框架的核心组件;具备修改和编写自己的应用框架的能力;第五阶段:做出自己的Android系统,无论是底层还是上层都能够了如指掌;能够根据实际需要设计和实现比较大Android系统,例如带领比较大的团队做出自己的Android手机产品等;第六阶段:势。
一切的思考均进入“势”的思考,一切都是思路问题,判断和预测Android的形势,引领市场,通往自由的天堂。
若立志成为Android高手,如有耐心,“一瓶一钵足矣”。
“天下事有难易乎?为之,则难者亦易矣;不为,则易者亦难矣。
Android进阶解密
![Android进阶解密](https://img.taocdn.com/s3/m/d0ec4c003868011ca300a6c30c2259010302f35e.png)
精彩摘录
精彩摘录
DVM中的应用每次运行时,字节码都需要通过即时编译器(Just In Time,JIT)转换为机器码,这会使得 应用的运行效率降低。而在ART中,系统在安装应用时会进行一次预编译(Ahead Of Time,AOT),将字节码预 先编译成机器码并存储在本地,这样应用每次运行时就不需要执行编译了,运行效率也大大提高。
10.2 Java虚拟机结 构
10.3对象的创建
10.4对象的堆内存 布局
1
10.5 oopklass模型
2
10.6垃圾标记 算法
3 10.7 Java对
象在虚拟机中 的生命周期
4
10.8垃圾收集 算法
5
10.9本章小结
11.1 Dalvik虚拟机 11.2 ART虚拟机
11.3 DVM和ART的诞 生
11.4本章小结
12.2 Android中的 ClassLoader
12.1 Java中的 ClassLoader
12.3本章小结
13.1热修复的产生
13.2热修复框架的 种类和对比
13.3资源修复 13.4代码修复
13.5动态链接 库的修复
13.6本章小结
1
14.1 Hook技 术概述
2
14.2 Hook技 术分类
04
8.4 Window的 添加过程 (WMS处理 部分)
05
8.5 Window的 删除过程
06
8.6本章小Leabharlann 结19.1系统源码 中的JNI
9.2
2
MediaRecord
er框架中的
JNI
3
9.3数据类型 的转换
4
9.4方法签名
智能手机Android系统38大必备秘籍(1)
![智能手机Android系统38大必备秘籍(1)](https://img.taocdn.com/s3/m/e716b5d633d4b14e852468a7.png)
4.不要把手机闹钟加入进程查杀列表里 14.搜索网页特定内容 5.用文件夹组织内容 6.重命名文件夹 7.查看系统日期 8.挂载你的SD卡(把手机设置成U盘) 9.调出最近使用的多个程序 10.下载更多Android动态壁纸 15.下载网页图片 16.管理Android通话记录 17.使用自定义照片作为通讯录联系人照片 18.浏览器多功能按钮 19.Android网页浏览历史记录快捷键 20.使用浏览器“标签页”功能
Android系统38大 Android系统38大 系统38 必备秘籍—以联想 必备秘籍— A60为例(1) A60为例(1) 为例
Android系统38大必备秘籍 Android系统38大必备秘籍 系统38
1.使用Android电源管理widget 2.Android手机拨号屏幕 3.为每个联系人定制铃声 11.快速切换主屏 12.设置双击屏幕放大的级别 13.改变Android浏览器字体
‹#›
11.快速切换主屏 11.快速切换主屏
Android系统一般提供5个主屏,或许你觉得每次滑动手指切换太麻烦, Android系统一般提供5个主屏,或许你觉得每次滑动手指切换太麻烦,可以 系统一般提供 按一下home home键 然后就可以选择进入特定的主屏, Sense的手机还支持 按一下home键,然后就可以选择进入特定的主屏,HTC Sense的手机还支持 多点触摸调出所有主屏幕供选择。 多点触摸调出所有主屏幕供选择。
‹#›
3.为每个联系人定制铃声 为每个联系人定制铃声
可以为女朋友或者家人设置单独的铃声,这样听到铃声就知道谁来电话了。 可以为女朋友或者家人设置单独的铃声,这样听到铃声就知道谁来电话了。设 置方法点击联系人列表里任意一个用户,然后就可以设置铃声。 置方法点击联系人列表里任意一个用户,然后就可以设置铃声。
高级程序员修炼之道-Android培训系列课程之ContentProvider4
![高级程序员修炼之道-Android培训系列课程之ContentProvider4](https://img.taocdn.com/s3/m/411f57faf90f76c661371ad1.png)
ContentProviderAndroid ContentResolver<!-- --><uses-permission android:name="android.permission.READ_CONTACTS" /><uses-permission android:name="android.permission.WRITE_CONTACTS" /><!-- uri -->content://com.android.contacts/contacts Uricontent://com.android.contacts/data/phones Uricontent://com.android.contacts/data/emails Email Uri<?xml version="1.0" encoding="utf-8"?><manifest xmlns:android="/apk/res/android"package="com.ljq.contact" android:versionCode="1"android:versionName="1.0"><application android:icon="@drawable/icon"android:label="@string/app_name"><uses-library android:name="android.test.runner"/><activity android:name=".ContactActivity"android:label="@string/app_name"><intent-filter><action android:name="android.intent.action.MAIN"/><categoryandroid:name="UNCHER"/></intent-filter></activity></application><uses-sdk android:minSdkVersion="7"/><instrumentationandroid:name="android.test.InstrumentationTestRunner"android:targetPackage="com.ljq.contact"android:label="Tests for My App"/><!-- --><uses-permission android:name="android.permission.READ_CONTACTS"/><uses-permission android:name="android.permission.WRITE_CONTACTS"/></manifest>package com.ljq.contact;import java.util.ArrayList;import android.content.ContentProviderOperation;import android.content.ContentProviderResult;import android.content.ContentResolver;import android.content.ContentUris;import android.content.ContentValues;import android.database.Cursor;import .Uri;import android.provider.ContactsContract;import android.provider.ContactsContract.Data;import android.provider.ContactsContract.RawContacts;import monDataKinds.Email;import monDataKinds.Phone;import monDataKinds.StructuredName;import android.test.AndroidTestCase;import android.util.Log;public class ContactTest extends AndroidTestCase{private static final String TAG = "ContactTest";/****/public void testGetContact(){ContentResolver contentResolver = this.getContext().getContentResolver();Uri uri = Uri.parse("content://com.android.contacts/contacts");Cursor cursor = contentResolver.query(uri, null, null, null, null);while(cursor.moveToNext()){//StringBuilder sb = new StringBuilder();String contactId =cursor.getString(cursor.getColumnIndex(ContactsContract.Contacts._ID));String name =cursor.getString(cursor.getColumnIndex(ContactsContract.Contacts.DISPLAY_NAME));sb.append("contactId=").append(contactId).append(",name=").append(name);//Cursor phones =contentResolver.query(monDataKinds.Phone.CONTENT_URI,null,monDataKinds.Phone.CONTACT_ID +" = "+ contactId,null, null);while(phones.moveToNext()){String phone = phones.getString(phones.getColumnIndex("data1"));sb.append(",phone=").append(phone);}// emailCursor emails =contentResolver.query(monDataKinds.Email.CONTENT_URI,null,C monDataKinds.Email.CONTACT_ID + " = " + contactId,null, null);while(emails.moveToNext()){String email = emails.getString(emails.getColumnIndex("data1"));sb.append(",email=").append(email);}Log.i(TAG, sb.toString());}}/*** RawContacts.CONTENT_URI rawContactId** data*/public void testInsert(){ContentValues values = new ContentValues();// RawContacts.CONTENT_URI rawContactIdUri rawContactUri =this.getContext().getContentResolver().insert(RawContacts.CONTENT_URI, values);long rawContactId = ContentUris.parseId(rawContactUri);// datavalues.clear();values.put(Data.RAW_CONTACT_ID, rawContactId);values.put(Data.MIMETYPE, StructuredName.CONTENT_ITEM_TYPE);values.put(StructuredName.GIVEN_NAME, "zhangsan");this.getContext().getContentResolver().insert(android.provider.ContactsContract.Data.CONTENT_URI, values);// datavalues.clear();values.put(android.provider.ContactsContract.Contacts.Data.RAW_CONTACT_ID, rawContactId);values.put(Data.MIMETYPE, Phone.CONTENT_ITEM_TYPE);values.put(Phone.NUMBER, "5554");values.put(Phone.TYPE, Phone.TYPE_MOBILE);this.getContext().getContentResolver().insert(android.provider.ContactsContract.Data.CONTENT_URI, values);// data Emailvalues.clear();values.put(android.provider.ContactsContract.Contacts.Data.RAW_CONTACT_ID, rawContactId);values.put(Data.MIMETYPE, Email.CONTENT_ITEM_TYPE);values.put(Email.DATA, "ljq218@");values.put(Email.TYPE, Email.TYPE_WORK);this.getContext().getContentResolver().insert(android.provider.ContactsContract.Data.CONTENT_URI, values);}/****/public void testSave() throws Throwable{// reference\android\provider\ContactsContract.RawContacts.htmlArrayList<ContentProviderOperation> ops = new ArrayList<ContentProviderOperation>();int rawContactInsertIndex = 0;ops.add(ContentProviderOperation.newInsert(RawContacts.CONTENT_URI).withValue(RawContacts.ACCOUNT_TYPE, null).withValue(RawContacts.ACCOUNT_NAME, null).build());// reference\android\provider\ContactsContract.Data.htmlops.add(ContentProviderOperation.newInsert(android.provider.ContactsContract.Data.CONTENT_U RI).withValueBackReference(Data.RAW_CONTACT_ID, rawContactInsertIndex).withValue(Data.MIMETYPE, StructuredName.CONTENT_ITEM_TYPE).withValue(StructuredName.GIVEN_NAME, "lisi").build());ops.add(ContentProviderOperation.newInsert(android.provider.ContactsContract.Data.CONTENT_U RI).withValueBackReference(Data.RAW_CONTACT_ID, rawContactInsertIndex).withValue(Data.MIMETYPE, Phone.CONTENT_ITEM_TYPE).withValue(Phone.NUMBER, "5556").withValue(Phone.TYPE, Phone.TYPE_MOBILE).withValue(BEL, "").build());ops.add(ContentProviderOperation.newInsert(android.provider.ContactsContract.Data.CONTENT_U RI).withValueBackReference(Data.RAW_CONTACT_ID, rawContactInsertIndex).withValue(Data.MIMETYPE, Email.CONTENT_ITEM_TYPE).withValue(Email.DATA, "lisi@").withValue(Email.TYPE, Email.TYPE_WORK).build());ContentProviderResult[] results = this.getContext().getContentResolver().applyBatch(ContactsContract.AUTHORITY,ops);for (ContentProviderResult result : results) {Log.i(TAG, result.uri.toString());}}}。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
Android高手进阶教程(一)-------Android常用名令集锦 (1)Android高手进阶教程(二)之----Android Launcher抽屉类SlidingDrawer的使用 (5)Android高手进阶教程(三)之----Android 中自定义View的应用 (9)Android高手进阶教程(四)之----Android 中自定义属性(attr.xml,TypedArray)的使用 (13)Android高手进阶教程(五)之----Android 中LayoutInflater的使用 (17)Android高手进阶教程(六)之----Android 中MenuInflater的使用(布局定义菜单)! (20)Android高手进阶教程(七)之----Android 中Preferences的使用! (24)Android高手进阶教程(八)之----Android Widget开发案例(世界杯倒计时!) (27)Android高手进阶教程(九)之----Android Handler的使用 (33)Android高手进阶教程(十)之----Android PopupWindow的使用 (36)Android高手进阶教程(十一)之----Android 通用获取Ip的方法(判断手机是否联网的方法) (40)Android高手进阶教程(十二)之----Android 在一个应用中如何启动另外一个已安装的应用 (41)Android 高手进阶教程(十三)之----Android 数据库SQLiteDatabase的使用 (44)Android 高手进阶教程(十四)之----Android Location的使用 (53)Android高手进阶教程(十五)之---通过Location获取Address的使用 (56)Android高手进阶教程(十六)之---Android中万能的BaseAdapter(Spinner,ListView,GridView)的使用! (61)Android高手进阶教程(十七)之---Android中Intent传递对象的两种方法(Serializable,Parcelable) (69)1Android高手进阶教程(一)-------Android常用名令集锦大家好,今天我们要讲的是android开发中,比较常用的名令集锦,在我们开发中难免用到Android命令,有些确实命令确实很有用处。
特别对于一些初学者来说,命令根本没有想过用也不会用,比如他们想安装一个.apk文件到模拟器上面,但是他们不会启动模拟器,他们只会先启动 Eclipse,然后在启动模拟器,这样不但浪费时间,而且Eclipse又占用你的内存。
这也是我为什么总结这篇文章的原因了,希望对大家有所帮助。
如果想让系统认识你输入的命令(如:输入android命令)有两种方法:1.设置环境变量.(和设置java路径一样,具体网上查哦!);2.直接进入你SDK 里tools目录(cd:sdkpath/tools)这样也OK.不过在此建议使用第一种!下面就是自己的小小总结:1.android:对你只要输入android就会出来,SDK and AVD manager我们可以更新SDK,增删修改AVD.效果如下图:2.android list avds:这条命令将会列出所有我们创建的android模拟器.效果如下图:3.android list targets:这条命令是列出我们所有的SDK可用版本,效果如下图:4.adb devices:这条命令是列出所有装载的设置,效果如下图(一个是模拟器,一个是真机):5.adb shell:这条命令是进入设备根目录/,取得对设备的控制权,如输入ls命令等。
6.adb install XXX.apk.这条命令是安装apk文件,如果你有多个设备(而你想把apk安装到emulator-5554这个模拟器上)则要输入:adb install -s emulator-5554D:/XXX.apk.7.emulator -avd avdname这条命令将启动一个模拟器,初学者学会这条,就不用下次启动模拟器的时候还要打开Eclipse了。
用法如下:8.mksdcard 256M d:\sdcard.img对于模拟器当然要创建sdcard了,这条命令是将在D盘下生成256M的sdcard.9.adb pull <remote> <local>/adb push <local> <remote>.我们创建完sdcard以后,要向里面放东西,或者把里面的东西弄出来,就用到以上命令了。
以adb push(将sdcard外的东西存放进去.)为例,用法如下:adb push foo.txt /sdcard/foo.txt10.android create avd --name Android2.0 --target 5这是创建avd 的命令。
--name后面就是avd 的名称,target 是SDK的版本。
这条语句是创建名称为Android2.0并且版本为5的avd.创建完可以用android list avds。
查看是否已经创建成功。
11.ctrl + F11 键的使用当我们启动模拟器的时候,通常是port模式,如果我们想在land下看效果,这个组合按钮就用到啦.看一下效果图:Android高手进阶教程(二)之----Android Launcher抽屉类SlidingDrawer的使用最近在研究Lanucher ,看了源码,发现了SlidingDrawer 这个类,也就是所谓的"抽屉"类。
它的用法很简单,要包括handle和content .handle 就是当你点击它的时候,content 要么抽抽屉要么关抽屉。
别的不多说了,具体步骤如下.1.新建Android 工程,命名为SlidingDrawer .2.准备素材,在这里我的图标是用Launcher2 里面的图标,放在drawable-hdpi文件夹目录结构如下:3.设置main.xml 布局:代码如下:view plaincopy to clipboardprint?<?xml version="1.0" encoding="utf-8"?><LinearLayoutxmlns:android="/apk/res/android" android:orientation="vertical"android:layout_width="fill_parent"android:layout_height="fill_parent"android:background="#808080"><SlidingDrawerandroid:id="@+id/slidingdrawer"android:layout_width="fill_parent"android:layout_height="fill_parent"android:orientation="vertical"android:handle="@+id/handle"android:content="@+id/content"><Buttonandroid:id="@+id/handle"android:layout_width="88dip"android:layout_height="44dip"android:background="@drawable/handle"/><LinearLayoutandroid:id="@+id/content"android:layout_width="fill_parent"android:layout_height="fill_parent"android:background="#00ff00"><Buttonandroid:id="@+id/button"android:layout_width="wrap_content"android:layout_height="wrap_content"android:text="Button"/><EditTextandroid:id="@+id/editText"android:layout_width="fill_parent"android:layout_height="wrap_content"/></LinearLayout></SlidingDrawer></LinearLayout>4.设置handle 图标的样式,在drawable 里添加handle.xml ,代码如下: view plaincopy to clipboardprint?<?xml version="1.0" encoding="utf-8"?><selectorxmlns:android="/apk/res/android"><item android:state_window_focused="false"android:state_enabled="true"android:drawable="@drawable/handle_normal" /><item android:state_pressed="true"android:drawable="@drawable/handle_pressed" /><item android:state_focused="true" android:state_enabled="true" android:drawable="@drawable/handle_focused" /><item android:state_enabled="true"android:drawable="@drawable/handle_normal" /><item android:state_focused="true"android:drawable="@drawable/handle_focused" /></selector><?xml version="1.0" encoding="utf-8"?><selector xmlns:android="/apk/res/android"> <item android:state_window_focused="false"android:state_enabled="true"android:drawable="@drawable/handle_normal" /><item android:state_pressed="true"android:drawable="@drawable/handle_pressed" /><item android:state_focused="true" android:state_enabled="true" android:drawable="@drawable/handle_focused" /><item android:state_enabled="true"android:drawable="@drawable/handle_normal" /><item android:state_focused="true"android:drawable="@drawable/handle_focused" /></selector>5.运行之。