Android笔记
《疯狂Android讲义第三版、第四版》四大主流芯片架构X86、ARM、RISC-V和MIPS序号架构特点1X86英特尔和AMD的“专属”在PC市场上独霸多年地位不可撼动2ARM在移动端和便捷设备上有着不可替代的优势3MIPS在网关、机顶盒等市场上非常受欢迎4RISC-V虽然出来不久但在智能穿戴产品上的应用广泛前景广阔JIT解释器动态编译执行运行时慢、ART模式预编译占用更多存储空间。创建AVD之前先设置环境变量ANDROID_SDK_HOME虚拟设备就会保存到其下的.android目录否则会保存到C盘。ANDROID_SDK_HOME并不表示一定是android sdk的安装目录。Genymotion可能需要进入bios开启cpu虚拟化。Android Studio中的Project相当于Eclipse中的WorkspaceAS中的Model才相当于Eclipse中的项目。Activity是Window的容器。DrawableDrawable有大量子类BitmapDrawable、ColorDrawable、ShapDrawable、StateListDrawable。GridLayout网格布局。TextViewandroid:drawableEndCheckedTextViewshap/标签元素用来定义ShapDrawableshap可以作为背景shape中android:shape指定形状类型solid指定背景色stroke指定画笔corners设置圆角gradient指定渐变。android:inputTypedatetime只是限定输入法面板上的字符。selector/元素用来定义StateListDrawableButtonToggleButton和Switch与CheckBox相比前两者通常用于切换某种状态。时钟模拟时钟AnalogClock、数字时钟TextClock、DigitalClock、计时器Chronometer、工具类SystemClock。ImageViewandroid:scaleType各缩放类型区别在于是否缩放、是否等比。setImageAlpha只改变src drawable的透明度。ImageButton、ZoomButton、QuickContactBadge、ZoomControls。AdapterView三个子抽像类AbsListView、AbsSpinner、AdapterViewAnimator。GridView、ExpandableListView、Spinner、AdapterViewFlipper、StackView。ProgressBar进度条控件可以表示进行状态或进度比例进度条派生出滑动条SeekBar、RatingBar。在标题栏上显示进度条Activity.setProgressBarVisibilityMaterial主题与Holo主题ViewAnimatorViewAnimator可以在View切换时表现出动画ViewSwitcher、ImageSwitcher、TextSwitcher、ViewFlipper。set/标签定义动画集就是使用这个xml时会播放由哪些动画组成的集合序列其中使用translate/标签定义平移动画指定位移和持续时间。日期、时间、数值选择CalendarView、DatePicker、TimerPicker、NumberPickerScrollViewScrollView添加垂直滚动条、HorizontalScrollView添水平滚动条。NotificationNotification是显示在顶部状态栏的通知对话框AlertDialog、ProgressDialog、DatePickerDialog、TimePickerDialog对话框风格的窗口Activity android:themeandroid:style/Theme.Material.Dialog/、PopupWindow。AlertDialog允许创建各种内容的对话框。归纳起来,AlertDialog提供了如下6种方法来指定对话框的内容。setMessage():文本。setItems():列表。setSingleChoiceItems():单选列表。setMultiChoiceItems():多选列表。setAdapter():自定义列表。setView():自定义View。Android没有公开设置系统日期时间的API。菜单手机没有Menu按键时Android推荐使用ActionBar代替菜单。Material主题不显示子菜单标题。MenuItem设置Intent可直接响应处理点击例如设置与菜单项关联的Activity。PopupMenu用于在某组件上方或下方弹出菜单。ActionBarActionBar活动条位于传统标题栏的位置。隐藏ActionBar使用NoActionBar主题或调用actionBar.hide()MenuItem可以设置将自己转化为Action Item即在有位置时将MenuItem直接显示在ActionBar上。menu标签中的item标签属性android:showAsAction。设置应用程序图标导航setHomeButtonEnabled、setDisplayHomeAsUpEnabled可以设置将图标变为可点击并且添加一个向左的箭头。Intent.Flag_Activity_Clear_TopMenuItem还可以通过setActionViewClass或setActionLayout指定使用自定义View。setNavigationMode设置使用Tab导航方式、下拉式导航。事件监听器事件监听器就是实现了特定接口的类实例在Activity中实现事件处理的方式有内部类方式、外部类方式、本身方式、匿名内部类方式、直接把方法名绑定给标签的方式。发送短信SmsManager使用emulator avdname1 启动模拟器后在标题中即是模拟器的号码。基于监听的事件处理模型偶合性低Android的事件处理机制保证优先触发基于监听的事件监听器。特定情况下基于回调的事件处理机制会更好的提高内聚性基于回调的事件处理即是重写组件的回调方法。系统设置事件resources().getConfiguration、onConfigurationChangedHandlerHandler用于线程内或线程间消息传递使用Timer周期性的调度TimerTask任务。在UI线程中系统已初始化了一个Looper对象在自定义子线程中如果要处理消息则必须自己创建一个Looper并启动Looper内会自动创建一个MessageQueue。Looper的prepare方法保证每个线程中最多有一个Looper。异步任务类AsyncTask适用于简单的异步处理。