android学习笔记完全版
- 格式:docx
- 大小:3.98 MB
- 文档页数:20
android核心知识点笔记Android核心知识点笔记一、Android基础知识1. Android的发展历程- Android是由Andy Rubin创建的一个开放源代码的移动操作系统,2003年创建,2005年被Google收购,2008年首次推出。
- Android的发展经历了不断的版本迭代,包括Cupcake、Donut、Eclair、Froyo、Gingerbread、Honeycomb、Ice Cream Sandwich、Jelly Bean、KitKat、Lollipop、Marshmallow、Nougat、Oreo、Pie等。
- Android的版本迭代主要包括增加新功能、优化性能、改进用户界面等方面的改动。
2. Android应用的开发流程- Android应用的开发包括需求分析、设计界面、编写代码、调试、测试和发布等阶段。
- 需求分析阶段是确定应用的功能和界面设计的重要阶段,可以根据用户需求绘制原型图、进行用户调研等。
- 设计界面阶段包括绘制应用的界面布局、设计图片资源等。
- 编写代码阶段是根据需求和设计完成应用的逻辑和功能代码的编写,可以使用Java语言和Android SDK提供的API。
- 调试阶段是通过模拟器或真机进行应用的调试和测试,可以检查代码逻辑和界面的运行情况。
- 测试阶段是进行全面的功能测试、性能测试和兼容性测试,确保应用在各种设备上都能正常运行,并修复可能存在的Bug。
- 发布阶段是将应用打包成APK文件并上传到应用商店,供用户下载和安装使用。
3. Android应用的架构- Android应用的架构包括四个主要组件:Activity、Service、Broadcast Receiver和Content Provider。
- Activity是Android应用的界面显示和用户交互的主要组件。
- Service是一个可以在后台运行的组件,可以执行一些长时间运行的任务,如音乐播放、网络下载等。
start是用来让动画从开头开始播放的。
如果动画设置了一个大于0的播放延迟(startDelay),那么调用该方法后还需要等到延迟的时间过去才回开始播放。
停止动画:end方法或cancel方法来停止一个播放着的动画。
在两种方式中动画都会终止并且只有再次调用start方法才会重新开始播放。
两者的区别则在于停止后动画所在的状态,1)cancel方法来停止动画后,动画只是停止了它的时间轴,动画的状态会停在一个中间态(intermediate state)。
2)end 方法来停止一个动画,那么动画会直接快进到该动画最后一帧并且停止,所有的对象都会保持在动画最终结束后的状态。
在Kitkat 中增加的没有怎么被大家关注到的新API则是带来了动画可以暂停和恢复的能力。
在那之前,一个动画如果被取消并且停留在当前的中间态,此时你用start 方法去重启动画,动画只会从一开始重新播放。
现在,你则可以调用pause方法来暂停当前播放中的动画,pause也会有和cancel 方法一样的功效让动画停留在中间态,但是当你使用resume 方法去恢复这个动画的时候,动画会从这个状态继续播放下去。
这个方法顾名思义是用来让动画从开头开始播放的。
如果动画设置了一个大于0的播放延迟(startDelay),那么调用该方法后还需要等到延迟的时间过去才回开始播放。
我们有两种停止动画的方法,你可以用end方法抑或cancel方法来停止一个播放着的动画。
在两种方式中动画都会终止并且只有再次调用start方法才会重新开始播放。
两者的区别则在于停止后动画所在的状态,当你使用cancel方法来停止动画后,动画只是停止了它的时间轴,动画的状态会停在一个中间态(intermediatestate)。
如果通过end 方法来停止一个动画,那么动画会直接快进到该动画最后一帧并且停止,所有的对象都会保持在动画最终结束后的状态。
在Kitkat 中增加的没有怎么被大家关注到的新API则是带来了动画可以暂停和恢复的能力。
Android学习笔记(by quqi99 MSN: quqi99@)Android platform是一个用于开发移动程序的软件包,它包括了操作系统、中间件及一些关键应用。
开发者能使用android SDK为Android platform开发应用,这些应用使用JA V A 语言书写,运行在虚拟机Dalvik(一个专为手机程序开发的基于linux内核的JA V A虚拟机)。
/wiki/index.php?title=%E7%BF%BB%E8%AF%91%E4%BB%BB %E5%8A%A1%E9%A2%86%E5%8F%96&printable=yes/forumdisplay.php?fid=21 什么是Android1.1 Android的特性✓应用框架,让一些基础设施得以重用✓Dalvik虚拟机,专为开发移动程序优化✓集成的浏览器,(基于WebKit引擎)✓优化的图形库,(2D图形库以及基于OpenGL ES 1.0规范的3D图形库)✓SQLite,用于结构化数据的存储,是一个数据库✓多媒体支持,支持多种音频,视频格式(MPEG4, H.264, MP3, AAC, AMR, JPG, PNG, GIF)✓GSM技术(依赖具体硬件)✓Bluetooth, EDGE, 3G, WiFi(依赖具体硬件)✓Camera, GPS, compass, accelerometer(依赖具体硬件)✓丰富的开发环境(DEBUG工具,内存及性能工具,Ec lipse的插件等)1.2 Android的架构Android操作系统的模块如下:应用:Android已集成了一些应用,如邮件客户端,SMS程序,日历,地图,浏览器等应用框架:程序库:例行程序Linux内核2 Andvoid起步2.1 开发环境配置使用Eclipse + Android Development Tools (ADT)插件。
在Help > Software Updates > Find and Install....中键入更新地址:https:///android/eclipse/2.2 运行第一个Andvoid程序使用Eclipse插件1、建立的工程类型为:Andvoid Project2、建立Launch Configuration. Run > Open Run Dialog... or Run > Open Debug Dialog 命令行运行程序1、创建工程activityCreator .ActivityName2、编译。
android移动应用开发技术课第一章笔记第一章:Android移动应用开发技术课笔记一、引言在当今移动互联网时代,Android系统以其开放性和普及率成为了最受欢迎的移动操作系统之一。
随着移动应用市场的不断扩大,对Android移动应用开发技术的需求也日益增加。
学习和掌握Android移动应用开发技术成为了越来越多人的选择。
二、Android移动应用开发技术概述1. 什么是Android?Android是一款基于Linux操作系统的开源移动设备操作系统,主要用于触摸屏移动设备,如智能手机和平板电脑。
Android操作系统的开放性使得开发者可以自由定制和开发应用,受到了广大用户的喜爱。
2. Android移动应用开发技术的重要性随着信息化和数字化的发展,移动应用成为了人们获取信息和进行交流的重要方式。
而Android作为最主流的移动操作系统之一,其应用的开发和推广具有巨大的市场潜力和商业价值。
掌握Android移动应用开发技术成为了许多开发者和从业者的追求目标。
三、学习Android移动应用开发技术的重要性1. 对于个人的意义学习Android移动应用开发技术可以提升个人的职业技能,并且在移动应用开发领域有更多的发展机会。
可以通过开发自己的应用来实现个人价值和创造财富。
2. 对于企业的意义随着移动互联网的发展,各类企业都希望拥有自己的移动应用,以提升品牌形象和服务用户。
懂得Android移动应用开发技术的人才对企业来说显得格外宝贵。
四、学习Android移动应用开发技术的途径1. 自学通过阅读相关书籍、网上教程和参加线上培训班,可以自学Android 移动应用开发技术。
这种方式需要具备较好的自学能力和毅力。
2. 参加培训班选择权威的培训机构进行系统的学习和培训,可以更快速、系统地学习Android移动应用开发技术。
五、Android移动应用开发技术的未来发展随着人工智能、物联网、区块链等技术的不断发展,Android移动应用开发技术也将不断拓展应用场景和技术深度。
Android 笔记使用Android 和Eclipse ADT 创建并运行应用程序在 Android 简介的开始部分,我将帮助您尽可能快地创建一个简单的 Android 应用程序。
您将使用 Android 4.2 和 Eclipse Android Development Tools (ADT) 插件来创建一个基于 Java 的 Hello World 应用程序。
为 Android 建立开发环境的途径有两种。
刚接触 Eclipse 和 Android 的开发人员可以先下载ADT (Android Developer Tools) Bundle。
ADT Bundle 捆绑了一个 Android SDK 和一个 Eclipse 版本,其中已经安装了 ADT 插件。
这个程序包可帮助您快速、轻松地使用 Android。
如果 Eclipse 已经安装在台式机上并设置好,那么请手动下载并安装Android SDK。
基础 Android SDK 包含一些可简化 Android 开发的系统工具,但它缺乏开发特定 Android 版本所需的 Android 库。
为您的操作系统下载基础 Android SDK 后,可以访问 SDK 安装目录的工具目录,并运行清单 1中的 Android 脚本。
清单 1. 启动Android SDK Manager~/Development/tools/android/android-sdk-mac_x86/tools$>./android该脚本启动了 Android SDK Manager,您可以下载 Android 的各种版本和库,并创建模拟程序或虚拟设备实例。
Android SDK Manager 打开了一个窗口,其中显示一个很长的要下载的选项的列表,如图 1所示。
图 1. SDK Manager在左侧复选框中,选择Tools,然后选择Android 4.2 (API 17)。
Andriod开始:创建工程:编程实现:运行项目:项目调试:Andriod体系结构:应用程序(Application)应用程序框架(Application Framework)库(Libraries)和运行环境(RunTime)Andriod应用程序组成:Activity;Broadcast Intent ReceiveServiceContent ProviderAndroid应用工程文件组成;src;//源程序R.javaAndriod Library;assets目录res目录;drawable目录;图片资源layout目录;排版资源values目录;字符串资源AndroidManifest.xml入口文件Andriod基本组件:界面UI7.1.1视图组件(View)View是Android当中View类是最基本的一个UI类;基本所有的UI组件都是集成View类实现的;譬如TextView文本框;Button;List列表;EditText编辑框;RadioButton多选按钮;CheckBox选择框等都是View类;渲染一块矩形区域;处理事件;设置焦点和是否可见;7.1.2视图容器组件(Viewgroup)View的容器;负责对添加进Viewgroup的这些View进行布局。
当然一个Viewgroup 也可以加入到另一个Viewgroup中7.1.3布局组件(Layout)Viewgroup的实现类;譬如:LinearLayout;RelativeLayout7.1.4布局参数(LayoutParams)一个View加入到Viewgroup里确认大小和位置的参数;定义~相当于LinearLayout,LayoutParamsLinearLayoutRelativeLayout View(~)View(~) View(~)View(~)View(~)7.2界面布局详解:要点:1)FrameLayout;2)单独使用LinearLayout3)单独使用RelativeLayout;4)LinearLayout和RelativeLayout进行组合布局;5)使用TableLayout布局;LinearLayout简介:LinearLayout是Android中最常用的布局组件之一,它将自己包含的子元素按照一个方向进行排列:方向包括水平排列和竖直排列2种;方向的设置通过:android:orientation=”vertical”竖直;android:orientation=”horizontal”水平javacode:---------------------------------------------------------------------------------------------------------------------------------layoutMain.setOrientation(LinearLayout.HORIZONTAL);//设置为竖直方向;setContentView(layoutMain);//将layoutMain和此Activity进行关联;---------------------------------------------------------------------------------------------------------------------------------FrameLayout简介:一个FrameLayout好比屏幕上提前预定的空白区域;然后可以填一些元素到里面,比方说一张图片;需要注意的是,所有的元素都被放置在FrameLayout区域最左上的区域;而无法为这些元素指定一个确切的位置;如果一个FrameLayout里面里有多个子元素,后面的子元素的显示会重叠在前一个元素上;RelativeLayout简介:相对布局类,即首先RelativeLayout是一个容器,它里面的元素,如Button等按钮的位置是按照相对位置来计算的;eg:有两个Button按钮都布局在一个relativeLayout里面,我们可以定义第二个Button在第一个Button的上面或者右面;但是第二个button所在的位置,依赖于第一个Button的位置。
第三章基本控件1、基本控件2、组件的添加到布局中有两种方式:在代码中编写、在布局文件中布局。
3、Button 相应点击事件在代码里注册View.OnClickListener监听器XML设置android:onClick第四章使用容器1、常用的布局:LearLayout\RelativeLayout\TableLayout\FrameLayout\ScrollView LinearLayout中的所有部件都必须指定android:layout_width和android:layout_height特性,值可以是实际像素,可以是"wrap_content"(即包含内容),"fill_parent"(即填充父元素)。
第五章使用选择部件1、Android 的适配器负责为选择部件提供数据源,也负责将单独的数据元素转换为显示在选择部件中的特定视图2、ArrayAdapter接受3个参数要使用的上下文(通常就是当前的activity的实例)要使用的视图的资源ID要实际显示的选项数组或列表3、ListView调用setAdapter()以提供数据和子视图。
通过添加一个侦听器,以便在选项变化时作出反应。
setOnItemSelectedListener()、setOnItemClickListener()你想自定义布局,只要将ListView标识为@android:id/listlistview只能响应单击列表选项的操作。
多选必须设置setchoicemode();4、GridView可以为我们提供一个可供选择的二维选项网格。
5、AutoCompleteTextView看成是EditText和Spinner的组合。
AutoCompleteTextView是EditText的子类。
Android:completeThreshold:表示在触发列表筛选功能之前,用户必须输入的最少字符数目AutoCompleteTextView不支持选择侦听器,我们可以注册一个TextWatcher,从而在文本变化时,也可以收到通知。
1 7个生命周期函数多个activity以栈的形式存在压入和弹出2 悬浮窗口的设置androidmanifest.xml 中android:theme="@android:style/Theme.Dialog"第二个activity 完全遮挡第一个activity时,调用onStop第二个activity 不完全遮挡第一个activity时,调用onPause3 布局文件组件的权重android:layout_weight="1"指的是所占窗口的比例4 相对布局<RelativeLayout android:padding="10px"组件的属性android:layout_above="@id/xxx" 放在指定控件的某某方位android:layout_beloveandroid:layout_toLeftofandroid:layout_toRightofandroid:layout_alignLeft=“@id/xxx”与给定组件左边缘对齐5 常用组件单选按钮组RadioGroup RadioButton 给RadioGroup设置监听器.setOnCheckedChangedListener(newRadioGroup.OnCheckedChangeListener(){ });判断是否选中if (MaleBUtton.getId()==checkedId)多选框box.setOnCheckedChangedListener(new CompoundButton.OnCheckedChangeListener(){ });判断是否选中if(isChecked) 与单选按钮不同的是,为每个多选框都设置监听器6 Toast.makeText(对象名,字符串,Toast.LENGTH_SHORT);7 ProgressBar 水平进度条xml文件中属性设置为style="?android:attr/progressBarStyleHorizontal"firstBar.setProgress();firstBar.setSencondaryProgress();8 ListView android:scrollbars="vertical"垂直方向的滚动条ListActivity的派生类9 Handler①创建一个Handler对象,②将要执行的操作协助线程对象的run方法中10用Handler处理进度条11 按钮控制ProgressBarHandler对象的声明用法:从消息队列取消息,然后处理该消息(异步处理)得到参数之后用参数。
第一章Android应用初体验1.android:layout_centerHorizontal= “true”水平居中对齐2.android:layout_centerVertical = “true” 垂直居中对齐3.android:layout_width和android:layout_height属性几乎每类组件都需要android:layout_width和android:layout_height属性。
它们通常被设置为以下两种属性值之一。
❑ match_parent:视图与其父视图大小相同。
❑ wrap_content:视图将根据其内容自动调整大小。
4.android:orientation属性是两个LinearLayout组件都具有的属性,决定了二者的子组件是水平放置的还是垂直放置的。
vertical:垂直放置horizontal:水平放置5.android:text属性TextView与Button组件具有android:text属性。
该属性指定组件显示的文字内容。
6.Android为整个布局文件以及各个字符串生成资源ID,但activity_quiz.xml布局文件中的组件除外,因为不是所有的组件都需要资源ID。
要为组件生成资源ID,请在定义组件时为其添加上android:id属性。
7.使用类包组织导入,就是让Eclipse依据代码来决定应该导入哪些Java或Android SDK类包。
如果之前导入的类包不再需要了,Eclipse也会自动删除它们。
通过以下组合键命令,进行类包组织导入:❑ Command+Shift+O(Mac系统);❑ Ctrl+Shift+O(Windows和Linux系统)。
8.通过调用来自Toast类的以下方法,可创建一个toast:该方法的Context参数通常是Activity的一个实例(Activity本身就是Context的子类)。
第二个参数是toast待显示字符串消息的资源ID。
android 开发核心知识点笔记1. 引言1.1 概述:本文是关于Android开发核心知识点的笔记,旨在帮助读者系统地了解和掌握Android应用开发的基础知识。
针对大多数初学者在学习Android开发过程中所遇到的困惑和问题,作者从原理、组件、界面、数据存储、网络通信等方面进行了全面整理和总结。
1.2 文章结构:文章主要分为6个部分,每个部分都涵盖了Android开发的重要内容。
首先,在引言部分我们会提供一个概述,并介绍文章整体结构;接着,我们将从Android 开发基础知识开始讲解,包括组成部分、组件通信机制以及Activity声明周期;然后,我们会讨论用户界面开发,介绍布局文件和控件、屏幕适配和多语言支持以及用户输入和手势处理等相关知识;紧接着是数据存储与持久化方面的内容,包括Shared Preferences的使用、SQLite数据库操作以及文件操作与外部存储访问权限管理机制;随后,我们将探讨网络与通信操作,包括网络请求与网络状态监听、JSON和XML数据解析与封装发送请求数据包的原理与方式比较以及WebSocket的使用及原理;最后,在结论部分我们将对全文进行总结,重点总结主要知识点和经验心得。
1.3 目的:本文的目的是帮助读者建立起对Android开发核心知识点的全面认识,并且为初学者提供一个系统学习Android开发的指南。
通过学习本文内容,读者可以了解Android应用的组成部分、各种组件之间的通信机制、Activity生命周期管理、用户界面开发技巧、数据存储与持久化方式、网络通信操作等关键知识。
同时,我们将分享一些实际开发经验和技巧,让读者在实践中更加灵活自如地应用所学知识。
总而言之,这篇文章旨在帮助读者打下扎实的Android开发基础,为进一步深入学习和探索Android应用开发提供必要支持。
无论你是刚开始接触Android 开发还是已经有一定经验并且想要巩固和提升自己的技能,本文都将为你提供有价值的信息和参考资料。
Android学习笔记总结初学者必看Android学习笔记总结初学者必看Android学习笔记总结初学者必看Android学习笔记总结第一步:Android(1) - 在Windows 下搭建Android 开发环境,以及Hello World 程序搭建 Android 的开发环境,以及写一个简单的示例程序在 Windows 下搭建 Android 开发环境 Android 项目的目录结构说明写一个简单的 Hello World 程序一、在 Windows 下搭建 Android 开发环境1、安装 JDK (Java Development Kit)2、安装 Android SDK3、安装 Eclipse/android/eclipse/ ,然后安装ADT(Android Development Tools)5、新建 Android 项目"New" -> Android Project,Project Name - 项目名称;Build Target - 编译项目的SDK 版本;Application name - 程序名称;Package name - 包名;Min SDK Version - 程序所支持的最低 SDK 版本代号(2 对应 1.1,3 对应 1.5,4 对应 1.6)6、运行 Android 项目打开菜单"Run" -> "Run Configurations" -> New launch configuration,设置启动项目名称,在 Android 选项卡中选择启动项目,在 Target 选项卡中设置模拟器7、创建/使用模拟 SD 卡创建SD 卡,运行类似如下命令:mksdcard -l sdcard 512M d:androidsdcard.img模拟器中使用SD 卡,在项目配置的Target 选项卡的"Additional Emulator Command Line Options" 框中输入类似如下参数:-sdcard d:androidsdcard.img8、配置模拟器运行类似如下命令:android create avd --name android15 --target 2。
《Android移动开发学习笔记》学习笔记android:id="@+id/button1"android:layout_width="match_parent"android:layout_height="wrap_content"android:text="开始广播"/>定义广播组件(MyBroadcastReceiver)class MyBroadReceiver extends BroadcastReceiverMyBroadReceiver(){out.println("每次广播都会实例化一个新的广播进行操作设置闹钟服务一制作界面<TimePickerandroid:id="@+id/time"android:layout_width="match_parent"android:layout_height="104dp"/><TextViewandroid:id="@+id/msg"android:layout_width="match_parent"android:layout_height="wrap_content"android:text="当前闹钟没有设置"/><Buttonandroid:id="@+id/set"android:layout_width="match_parent"android:layout_height="wrap_content"android:text="设置闹钟"/><Buttonandroid:id="@+id/delete"android:layout_width="match_parent"android:layout_height="wrap_content"android:text="删除闹钟"/>二定义闹钟的提示界面public class AlarmMessage extends Activity{@Overrideprotected void onCreate(Bundle savedInstanceState){super.onCreate(savedInstanceState);new AlertDialog.Builder(this).setIcon(R.drawable.ic_launcher).setTitle("闹钟时间已到").setMessage("时间响起,现在时间:"+new SimpleDateFormat("yyyy 年MM月dd日HH时mm分ss秒").format(new Date(System.currentTimeMillis()))).setPositiveButton("关闭",new DialogInterface.OnClickListener(){@Overridepublic void onClick(DialogInterface arg0,int arg1){AlarmMessage.this.finish();}}).show();}}三定义闹钟广播public class MyAlarmReceiver extends BroadcastReceiver{}});set.setOnClickListener(new OnClickListener(){@Overridepublic void onClick(View arg0){Intent intent=new Intent(MyAlarmActivity.this,MyAlarmReceiver.class);intent.setAction("");PendingIntent sender=PendingIntent.getBroadcast(MyAlarmActivity.this,0,intent,PendingIntent.FLAG_CANCEL_CURRENT);alarm.set(AlarmManager.RTC_WAKEUP,calendar.getTimeInMillis(),sender);msg.setText("闹钟响起的时间是:"+hourOfDay+"时"+minute+"分。
Chapter01: Android简介和环境的搭建一.Android简介运行的核心(结构的全景图)One: Linux Kernel (显卡,wifi 硬件的资源)Two: SDK(Lib:类库Android Runntime(核心的类库,vm)) Top: ApplictionsApplication Framework (组件的管理)应用程序:( Browers,…….. )从2005开始发展Google收购了Android, 2008 推出G1- G11对手: 黑莓, window, nokia iphone优势:可以在pc mac linux开发开发的语言:java / objective C支持很多的技术flashAndroid的主要的组件1.Activity:界面组件(显示在界面容器组件)2.Intent:传输组件(和其他的Activity,Internate交互)3.Service:进行数据的处理(属于后台组件,不可见)4.Content Provider : 处理数据接口(接驳数据库)Android的开发工具1.SDK 类似JDK2.Eclipse+ADT插件二.环境的搭建1.Android的SDK的安装下载的地址:/这个环境不是完整的开发的环境,运行Android的管理工具的前提是安装JDK3.简介SDK的文件的结构a)platform-tools/tools:只提供cmd环境下,安装和卸载程序4.在当前的环境中配置Android的环境变量a)i.指定SDK下的platform-tools/tools的路径b)将创建的android的环境路径,添加到path中i.c)测试cmd键入adb5.ADT的安装a)Eclipse的插件的安装b)Eclipse中使用离线安装Android的插件i.ii.c)Eclipse配置SDKi.d)创建Android虚拟机i.6.安装一些Android的程序a)Android的应用程序的后缀*.ap ki.将安装的应用程序拷贝到D:\android-sdk-windows\platform-tools文件夹ii.Cmd运行:前提:Android的VM是开启的Chapter02: Android的第一个程序1.创建一个Android的项目a)选择运行的环境注意:选择运行的环境,最好与虚拟机的版本统一2.观察Android项目的文件的结构3.Chapter03 Android中Activity和Intent Intent:多个Activity联系的纽带Activity01----------------------------->Activity02Intent.Intent的基本的作用1.类似于请求的使用a)指定由那个Activity发送,发送到那一个Activityb)包含的内容ponent : 确定目标的位置ii.Action:指出发送的目标要做什么iii.Data :向另外的Activity发送什么样子的数据iv.Categoryv.Extras : 携带额外的数据,携带的数据以key-value的格式发送vi.Flags2.具体的操作i.创建Intentii.在intent中配置Form Acvtivity T o Acvtivityiii.发送3.通过事件的监听的操作完成具体的调用a)Activity的注册i.b)为指定的Activity绑定布局文件i.c)调用者的事件绑定和Intent的使用Intent的高级使用1.多个Activity之间如何传递信息a)通过Intent对象携带数据2.能否调用其他的Activity(不是本项目中的Activity)调用信息:Activity发送的请求。
Android学习笔记今天记录一下这段时期学习Android的笔记,这些笔记比较凌乱,但总归是有用的,以后什么时候有用,可以直接查询来使用。
通过命令操作contentprovideradb shell content insert --uri 的使用在命令行下输入adb shell content会提示相关的使用说明ubuntu sqlite3可视化sudo apt-get install sqlite3sqlite3 -versionsudo apt-get install sqlitebrowsersqlitebrowser查看某一条提交记录git show 9bc2f472e9cf204c737025b5d7101ba16c43b356git log --pretty=oneline ./src/com/android/providers/settings/SettingsBackupAgent.javagoogle浏览器下载安装sudo apt-get install chromium-browser chromium-browser-l10n查询修改Settings数据库中的字段值adb shell settings get namespace keyadb shell settings put namespace key valueadb shell settings delete namespace keyadb shell settings list namespaceandroid studio原码导入mmm development/tools/idegen/development/tools/idegen/idegen.sh反编译遇到的问题apktool.jar下载https:///iBotPeaches/apktool/downloads将apktool和apktool.jar放置到usr/local/bin目录下,并且设置其为可执行文件sudo chmod +x apktoolsudo chmod +x apktool.jarapktool d xxx.apk反编译的时候可能会出现这样的错误:com.googlecode.dex2jar.DexException这是因为当前是odex文件,需要执行下面的操作:java -jar baksmali-2.0.3.jar -d system/framework -x xxx.odex-d 参数就是指定到那个目录下寻找那些所需的jar文件,如果所需的jar包就在当前目录,那么就不需要指定该目录了。
由应用调用框架再调用库中的方法,在调用核心驱动程序。
安卓工程目录结构常用代码:<LinearLayoutxmlns:android="/apk/res/android"android:layout_width="fill_parent"android:layout_height="fill_parent"android:orientation="vertical">TEXTView控件的使用方法:1.利用setContentView(对象);在mainactivity中进行显示文本。
2.在layout中利用xml进行布局设置局部字体的颜色Android:textcolor=”#00ffff”超链接:android:autolink=”all”跑马灯的效果如下显示:ellipsize表示省略,marquee表示滚动。
EditText控件使用方法:Android:maxlength=“字符的数量” 控制字符串输入的数量Android:singleLine=“true”单行false”多行Android:inputType=“number”等等类型为限制输入信息Android:hint=“字符串” 为显示提示信息Android:drawableLeft=“@drawable/title” 左边显示图片Android:background=”@drawable/shape”设置输入框的形状。
Button控件使用方法:Android:text=”按钮显示的文本”Android:height=”wrap_content”高度自适应字体Android:width=“wrap_content” “fill_parent”宽度填满父容器Button控件事件绑定方法1.声明button变量。
Private Button btn1=null;2.查找:btn1=(Button)findViewById(R.id.btn1);需要强制转换为Button 类型添加单个监听事件:btn1.setOnClickListener(new OnClickListener(){@Overridepublic void onClick(View v){// TODO Auto-generated method stubToast.makeText(MainActivity.this, "你点击了按钮",Toast.LENGTH_LONG ).show();}});Button控件事件多个绑定方法:protected void onCreate(Bundle savedInstanceState){super.onCreate(savedInstanceState);setContentView(yout.activity_main);btn1=(Button)findViewById(R.id.btn1);btn2=(Button)findViewById(R.id.btn2);btn1.setOnClickListener(listener);btn2.setOnClickListener(listener);}private OnClickListener listener=new OnClickListener(){@Overridepublic void onClick(View v){Button btn=(Button)v;switch (btn.getId()){case R.id.btn1:Toast.makeText(MainActivity.this, "你点击了按钮",Toast.LENGTH_LONG ).show();break;case R.id.btn2:Toast.makeText(MainActivity.this, "你喜欢我",Toast.LENGTH_LONG ).show();break;}// TODO Auto-generated method stub}};Android 的七大生命周期:onCreate()-onStart()-onResume-onPause()-onStop()-onDestroy()-onRestart()安卓权限:利用java将图片显示的代码:ImageView iv=new ImageView(this);iv.setImageBitmap(BitmapFactory.decodeResource(getResources(),R.drawabl e.dzxx));this.setContentView(iv);利用java将媒体文件插入的代码在@Override前声明MediaPlayer midPlayer;然后写代码midPlayer=MediaPlayer.create(this, R.raw.mid);midPlayer.start();Andriodmanifest.xml内声明权限<uses-permission andriod:name="andriod.permission.SEND_SMS"/>发短信的权限权限大全Intent初级学习笔记拨打电话权限:<uses-permission android:name="android.permission.CALL_PHONE"/>1.创建按钮对象,2.为对象查找id,3为对象按钮添加监听事件4.写监听事件函数调用Activity的代码:Intent intent2=new Intent();intent2.setClass(IntentActivity.this, SecondActivity.class);或者:Intent intent = new Intent(this, SignInActivity.class);startActivity(intent);添加行为:Intent intent1=new Intent();intent1.setAction(intent1.ACTION_SENDTO);intent1.setData(Uri.parse("smsto:5554"));intent1.putExtra("sms_body", "Hello word");startActivity(intent1);从上一个活动中接受结果从而开始下个活动的代码:private void pickContact() {// Create an intent to "pick" a contact, as defined by the content providerURIIntent intent = new Intent(Intent.ACTION_PICK, Contacts.CONTENT_URI);startActivityForResult(intent, PICK_CONTACT_REQUEST);}@Overrideprotected void onActivityResult(int requestCode, int resultCode, Intent data) { // If the request went well (OK) and the request was PICK_CONTACT_REQUESTif (resultCode == Activity.RESULT_OK && requestCode == PICK_CONTACT_REQUEST) {// Perform a query to the contact's content provider for the contact's nameCursor cursor = getContentResolver().query(data.getData(),new String[] {Contacts.DISPLAY_NAME}, null, null, null);if (cursor.moveToFirst()) { // True if the cursor is not emptyint columnIndex = cursor.getColumnIndex(Contacts.DISPLAY_NAME);String name = cursor.getString(columnIndex);// Do something with the selected contact's name...}}}生命周期的代码:public class ExampleActivity extends Activity {@Overridepublic void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);// The activity is being created.}@Overrideprotected void onStart() {super.onStart();// The activity is about to become visible.}@Overrideprotected void onResume() {super.onResume();// The activity has become visible (it is now "resumed").}@Overrideprotected void onPause() {super.onPause();// Another activity is taking focus (this activity is about to be "paused").}@Overrideprotected void onStop() {super.onStop();// The activity is no longer visible (it is now "stopped") }@Overrideprotected void onDestroy() {super.onDestroy();// The activity is about to be destroyed.}}流程图:Activity启动时调用oncreate()—onstart()—onresume();切换另一个Activity时上一个activity为onpause()—onstop()该activity调用oncreate()—onstart()—onresume()再返回第一个activity时第二个调用onpause()—onstop()—onde story()第一个调用onrestart()--onstart()—onresume()退出时调用onpause()—onstop()—ondestory()点击home键时调用onpause()—onstop()回来时调用onrestart()--onstart()—onresume()保存数据的方法:protected void onSaveInstanceState(Bundle outState){// TODO Auto-generated method stubsuper.onSaveInstanceState(outState);String content=txt.getText().toString();outState.putString(CONTENT, content);}在oncreat()中添加判断用于恢复:if (null!=savedInstanceState&&savedInstanceState.containsKey(CONTENT)) {txt.setText(savedInstanceState.getString(CONTENT));}安卓主题代码:Linearlayout线性布局:android:orientation="horizontal" 方向android:gravity="right" 位置android:layout_weight=”1” 表示控件在空间所占比例android:background="#0000ff" 背景颜色android:textcolor=”#0000ff” 字体颜色android:gravity="center_vertical|center_horizontal"垂直与水平均居中AbsoluteLayout绝对布局:android:layout_x="10px"RelativeLayout相对布局:Android:layout_above 将控件置于给定id的控件之上Android:layout_below 将控件置于给定id的控件之下Android:layout_toLeftOf 将控件置于给定id的控件之左Android:layout_toRightOf 将控件置于给定id的控件之右Android:padding=”10px”表示控件与容器的间隔为10 Android:layout_margin=”30dp”表示控件与控件之间的间隔TableLayout 桌面布局程序的调试:debug 测试输出信息。