平时积累(五)

    技术2022-05-19  23

    1. Ubuntu中显示网络连接图标:

     

        sudo gedit /etc/NetworkManager/nm-system-settings.conf把managed=false改成managed=true即可。

     

    2. Eclipse查看Android源码:

     

        (1)从http://rgruet.free.fr/public/下载ZIP包。      (2)在platforms/版本/新建sources目录,解压刚下的ZIP包,重启Eclipse。

     

    3. Android中获取位图的三种方法:

     

        (1)InputStream mInputStream = getResources().openRawResource(R.drawable.图片名);

     

                BitmapDrawable mBitmapDrawable = new BitmapDrawable(mInputStream);

     

                Bitmap mBitmap = mBitmapDrawable.getBitmap();

     

        (2)BitmapDrawable mBitmapDrawable = (BitmapDrawable)getResources().getDrawable(R.drawable.图片名);

     

                Bitmap mBitmap = mBitmapDrawable.getBitmap();

     

        (3)Bitmap mBitmap = BitmapFactory.decodeResource(getResources(), R.drawable.图片名);

     

    4. 命令重启模拟器:

     

        (1)sudo ./adb shell

     

        (2)reboot

     

    5. Eclipse中查看类继承关系:Ctrl + T。

     

    6. 如何实现线程与线程通信,进程与进程通信?

     

        (1)线程与线程间通信:Handler机制, 广播接收器。

     

        (2)进程与进程间通信:AIDL,广播接收器。

     

    7. Android为什么放弃字节码文件而使用DEX文件?

     

        (1)应用程序经过编译生成许多字节码文件,字节码之间存在大量冗余,DEX文件则将所有字节码文件整合到一个文件,

     

                从而减少文件尺寸,I/O操作,加快了类查找速度,常量集中管理。

     

        (2)增加新操作码。

     

        (3)文件结构简单,命令等长,提高解析速度。

     

        (4)扩大只读结构,提高跨进程共享。

     

    8. DEX优化?

     

        (1)调整所有字段的字节序,对齐结构中的每一个域。

     

        (2)验证DEX文件中的所有类。

     

        (3)对特定的类进行优化,对方法里的操作码进行优化。

     

         优化时机:

     

         (1)预制应用:系统编译后,生成优化文件,以ODEX结尾,在应用程序发布时除APK文件外,还包含一个相应的ODEX文件。

     

         (2)非预制应用:运行时对APK文件中的DEX进行优化,优化后的文件将被放入缓存,优化后的文件被称为DEY。

     

    9. 如何刷新View?

     

        在UI线程中调用invalidate()方法,在非UI线程中调用postInvalidate()方法。

     

    10. Android系统架构:

     

          (1) Linux内核:内存管理,进程管理,网络协议栈,驱动模型等。

     

          (2) 系统核心库:

     

                   a. 系统C库(LIBC),媒体库,Surface Manager(显示子系统管理,应用程序与2D,3D图层无缝结合),WebCore(浏览器

     

                       引擎),SGL(2D图形引擎),3D Libraries(OpenGL ES),FreeType(位图,矢量字体),SQLite)数据库引擎)。

     

                   b. 运行库:核心库(Java编程语言核心库:Data Structure,Network,Utilities,File System)和Dalvik虚拟机

     

                                   (对象生命周期管理,堆栈管理,线程管理,安全和异常管理,垃圾回收等)。

     

          (3)应用程序框架:可扩展视图, 内容管理器,通知管理器,活动管理器,窗口管理器等。

     

          (4)应用程序:音乐,联系人,浏览器等。


    最新回复(0)