Android开发中基础知识概括

Android知识点回顾:

要学习Android首先要对Android的知识体系做一个初步的了解。俗话说“工欲善其事必先利其器”就是这个道理,我们首先要知道学习Android会学到那些知识点,我初步的整理了一下:

一、基础知识

  1. Java基础
  2. 数据结构(要做一个初步的了解:例如栈和队列,基本的算法)
  3. 面向对象编程的思想(注:这一点非常重要)
  4. 设计模式(注意:这里的设计模式并不是分层模式;Java常用的23种设计模式例如:工厂模式、单例模式等等)
  5. 开发环境:Eclipse和AndroidStudio(主流开发工具)要弄清楚两者的区别
  6. Android SDK
  7. 弄清Android的四大组件:Activity、Service(弄清前两者的生命周期,以及service的启动方式)、BroadcastReceiver(两种注册方式:静态注册、动态注册)、ContentProvider(ContentReceiver)
  8. 弄清楚ActionBar的使用
  9. Fragment的生命周期和使用方法以及适用场景
二、UI(前台界面控件)

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

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(帧动画)
    • Property Animation(属性动画)
      • ValueAnimation
      • ObjectAnimation
      • AnimationSet

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目录中。菜单资源文件必须使用

      标签作为根节点。除了标签外,还有另外两个标签用于设置菜单项和分组,这两个标签是

6.OpenGL(图形编程)

三、通信

  1. HTTP
    • HTTPClient
    • HTTPConnection
  2. Socket
  3. Bluetooth
  4. NFC
  5. Headset
  6. USB

四、数据持久化

  1. Sqlite
    1. SQLiteOpenHelper
    2. ContentProvider
  2. File
    1. Internal Storage
    2. External Storage
  3. SharedPreferences

五、性能

  1. UI优化
    1. 布局层次结构
    2. 抽象布局使用
    3. HierarchyViewer(提供了一个可视化界面显示布局的层次结构,让我们可以进行调试,从而优化界面布局结构。
    4. Lint工具(lint是最著名的C语言工具之一,是由贝尔实验室SteveJohnson于1979在PCC(PortableC Compiler)基础上开发的静态代码分析,一般由UNIX系统提供。
  2. 内存优化
    1. OOM:(
      1. Object-Oriented Method

        JavaEE 与 Android 开发:

      2. OOM - Out of Memory,内存溢出

        内存溢出的解决办法:

        1、等比例缩小图片

        2、对图片采用软引用,及时进行recycle()操作。

        3、使用加载图片框架处理图片,如专业处理图片的ImageLoader图片加载框架,还有XUtils的BitMapUtils来处理。

      3. OOM - Out of money,金钱耗尽。房奴通常用这句话提醒自己已经没有金钱不能维持正常生活了,特别是不能进行精神文明消费。

    2. ARN(Application Not Responding
    3. 分析
      1. Heap
      2. adb shell
        1. dumpsys meminfo
        2. showmap
      3. TraceView
      4. Dalvik日志
      5. logcat
      6. MAT
  3. 电量优化
  4. 流量优化

六、调试

  1. Locat
  2. adb
  3. HierarchyViewer
  4. TraceView
  5. Heap
  6. Lint

七、适配

  1. OS Version    min SDK
  2. Screen Size   layout
  3. Screen px     drawable

八、测试

  1. Monkey
  2. MonkeyRunner
  3. JUnit
  4. Robotium
  5. Appium
  6. Athrun(TMTS)
  7. UIAutomator

九、安全

  1. 服务器安全
  2. 通信安全
    1. 与服务端通信
    2. 组件间通信
  3. 数据加密
  4. 书库验签
  5. 代码混淆
  6. webview/JS安全调用
  7. MD5、DES、ESA、https、证书、权限

十、NDK

  1. JNI
  2. C语言
  3. C++

十一、手机功能

  1. 电话
    • 联系人
    • 通话记录
  2. 短/ 彩信
  3. Camera
  4. Audio
  5. SD卡
  6. 感应器
    • 加速、放向、重力、光线、陀螺仪、磁场、接近、温度、压力、线性加速度、旋转

十二、第三方扩展

  • 地图
  • 语音识别
  • 支付
  • 统计分析
  • 广告

十三、其他

  • Intent
  • AndroidManifest
  • AIDL
  • WiFi
  • 国际化
  • PopuWindow
到此Android基本的开发知识就结束了,至于游戏开发就会涉及到界面的渲染等知识。

你可能感兴趣的:(Android基础,Android开发知识体系结构)