Android知识点回顾:
要学习Android首先要对Android的知识体系做一个初步的了解。俗话说“工欲善其事必先利其器”就是这个道理,我们首先要知道学习Android会学到那些知识点,我初步的整理了一下:
一、基础知识
- Java基础
- 数据结构(要做一个初步的了解:例如栈和队列,基本的算法)
- 面向对象编程的思想(注:这一点非常重要)
- 设计模式(注意:这里的设计模式并不是分层模式;Java常用的23种设计模式例如:工厂模式、单例模式等等)
- 开发环境:Eclipse和AndroidStudio(主流开发工具)要弄清楚两者的区别
- Android SDK
- 弄清Android的四大组件:Activity、Service(弄清前两者的生命周期,以及service的启动方式)、BroadcastReceiver(两种注册方式:静态注册、动态注册)、ContentProvider(ContentReceiver)
- 弄清楚ActionBar的使用
- Fragment的生命周期和使用方法以及适用场景
1.Layout(xml文件中的布局方式)
- FragmentLayout(帧布局)
- LinearLayout(线性布局)
- TableLayout(表格布局)
- TableRow
- GridLayout(网格布局)
- RelativeLayout(相对布局)
- DrawerLayout(Google自带的侧滑栏布局)
- SlidingPaneLayout(滑动菜单)
2.View
- Widgets(窗口小部件)
- TextView(文本框)
- Button(按钮)
- RadioButton(单选框)
- CheckBox(复选框)
- Switch(开关)
- ToggleButton(切换按钮)
- ImageView(图片框)
- ImageButton(图片按钮)
- ProgressBar(进度条)
- Spinner(下拉框)
- WebView
- RatingBar(评分组件)
- Containers(容器)
- RadioGroup
- ListView
- GridView
- ExpandableListView(多级列表)
- ScollView(卷轴视图)
- TabHost(标签栏)
- SlidingDrawer(抽屉)
- Gallery(画廊)
- VideoView
- DialerFilter(拨号器)
- RecyclerView
- CardView
- Date&Time(时间控件)
- Expert
-
ToolBar (工具栏)
-
Space
-
PopupWindow (弹窗)
-
CheckedTextView
-
AutoCompleteTextView (自动补全文本框)
-
MultiAutoCompleteTextView
-
QuickContactBadge
-
ExtractEditText (提取文本)
-
NumberPicker (数字选择器)
-
ZoomButton (变焦按钮)
-
ZoomControls(缩放控制)
-
GestureOverlayView (手势覆盖查看)
-
SurfaceView
-
TextureView (纹理视图)
-
StackView (堆栈视图)
-
ViewStub
-
ViewAnimator
-
ViewFlipper
-
ViewSwitcher
-
ImageSwitcher
-
TextSwitcher
-
AdapterViewFlipper
-
MediaController
-
DialerFilter
-
PopMenu
-
- Custom(自定义)
- include
- fragment
- requestFocus
- Widgets(窗口小部件)
3.Custom View(自定义控件)
- extend system View
- combination view (组合控件)
- extend View(继承View)
4.anim(动画)
- View Animation
- Tween Animation(补间动画)
- alpha(透明度动画)
- scale(缩放动画)
- translate(平移动画)
- rotate(旋转动画)
- Interpolators(插值器)
- accelerated(加速)
- decelerated(减速)
- repeated(重复)
- bounced(弹跳)
- Frame Animation(帧动画)
- Tween Animation(补间动画)
- Property Animation(属性动画)
- ValueAnimation
- ObjectAnimation
- AnimationSet
- View Animation
5.Resource(资源文件)
- assets(文件夹里面的文件都是保持原始的文件格式,例如:图片、音乐、字体等)
- res(可以存放项目中所有的资源文件,例如:图片(*.png、*.jpg)、文本等。)
res/drawable-hdpi:保存高分辨率图片资源,可以使用Resources.getDrawable(id)可以获得资源类型。
res/drawable-ldpi:保存低分辩率图片资源,可以使用Resources.getDrawable(id)可以获得资源类型。
res/drawable-mdpi:保存中等分辨率图片资源,可以使用Resources.getDrawable(id)可以获得资源类型。
res/layout:存放所有的布局文件,主要是用于排列不同的显示组件,在Android程序中要读取此配置。
res/values: 存放一些资源文件的信息,用于读取文本资源,在本文件夹之中有一些约定的文件名称:arrays.xml:定义数组数据;(在个这个xml命名的时候可以随便起名,因为最后用的时候只是用到写在这个xml文件中的array的名字)
res/raw:自定义的一些原生文件所在目录,像音乐、视频等文件格式。存放直接复制到设备中的任意文件。它们无需编译,添加到你的应用程序编译产生的压缩文件中。要使用这些资源,可以调用Resources.openRawResource(),参数是资源的ID 也可以用,即R.raw.somefilename,Resources.getRawResource()方法可以获得这些资源。
res/xml:用户自定义的XML文件,所有的文件在程序运行时编译到应用程序之中,在程序运行时可以使用Resources.getXML()方法获取。
res/anim:用于定义动画对象。存放定义了补间动画(tweened animation)或逐帧动画(frame by frame animation)的XML文件。(该目录下也可以存放定义property animations的XML文件,但是最好还是分开存放)。
res/animator:存放定义了property animations(android 3.0新定义的动画框架)的XML文件
res/color/:存放定义了颜色状态列表资源(Color State List Resource)的XML文件
res/menu/:存放定义了应用程序菜单资源的XML文件。正确创建文件的方法:new Folder,名字menu,new Other——Android——XML,选择menu类型,填写名称,确定即可。菜单资源文件必须放在res/menu目录中。菜单资源文件必须使用<menu>标签作为根节点。除了<menu>标签外,还有另外两个标签用于设置菜单项和分组,这两个标签是<item>和<group>。
6.OpenGL(图形编程)
三、通信
- HTTP
- HTTPClient
- HTTPConnection
- Socket
- Bluetooth
- NFC
- Headset
- USB
四、数据持久化
- Sqlite
- SQLiteOpenHelper
- ContentProvider
- File
- Internal Storage
- External Storage
- SharedPreferences
五、性能
- UI优化
- 布局层次结构
- 抽象布局使用
- HierarchyViewer(提供了一个可视化界面显示布局的层次结构,让我们可以进行调试,从而优化界面布局结构。)
- Lint工具(lint是最著名的C语言工具之一,是由贝尔实验室SteveJohnson于1979在PCC(PortableC Compiler)基础上开发的静态代码分析,一般由UNIX系统提供。)
- 内存优化
- OOM:(
-
Object-Oriented Method
JavaEE 与 Android 开发:
-
OOM - Out of Memory,内存溢出
内存溢出的解决办法:
1、等比例缩小图片
2、对图片采用软引用,及时进行recycle()操作。
3、使用加载图片框架处理图片,如专业处理图片的ImageLoader图片加载框架,还有XUtils的BitMapUtils来处理。
-
OOM - Out of money,金钱耗尽。房奴通常用这句话提醒自己已经没有金钱不能维持正常生活了,特别是不能进行精神文明消费。
-
- ARN(Application Not Responding)
- 分析
- Heap
- adb shell
- dumpsys meminfo
- showmap
- TraceView
- Dalvik日志
- logcat
- MAT
- OOM:(
- 电量优化
- 流量优化
六、调试
- Locat
- adb
- HierarchyViewer
- TraceView
- Heap
- Lint
七、适配
- OS Version min SDK
- Screen Size layout
- Screen px drawable
八、测试
- Monkey
- MonkeyRunner
- JUnit
- Robotium
- Appium
- Athrun(TMTS)
- UIAutomator
九、安全
- 服务器安全
- 通信安全
- 与服务端通信
- 组件间通信
- 数据加密
- 书库验签
- 代码混淆
- webview/JS安全调用
- MD5、DES、ESA、https、证书、权限
十、NDK
- JNI
- C语言
- C++
十一、手机功能
- 电话
- 联系人
- 通话记录
- 短/ 彩信
- Camera
- Audio
- SD卡
- 感应器
- 加速、放向、重力、光线、陀螺仪、磁场、接近、温度、压力、线性加速度、旋转
十二、第三方扩展
- 地图
- 语音识别
- 支付
- 统计分析
- 广告
十三、其他
- Intent
- AndroidManifest
- AIDL
- WiFi
- 国际化
- PopuWindow