精华内容
下载资源
问答
  • 这是安卓系统内置webkit内核浏览器的一个组件,组件名称为Webview。WebView是安卓系统中一款基于webkit引擎、展现web页面的控件。Android的Webview在低版本和高版本采用了不同的webkit版本内核,在版本更新到4.4后...

    这是安卓系统内置webkit内核浏览器的一个组件,组件名称为Webview。

    WebView是安卓系统中一款基于webkit引擎、展现web页面的控件。 Android的Webview在低版本和高版本采用了不同的webkit版本内核,在版本更新到4.4后直接使用了Chrome版本。

    WebView能够对Web页面进行i显示和渲染,可以直接使用html文件(网络上或本地assets中)作布局,更可以可和JavaScript交互调用。

    WebView控件功能强大,除了具有一般View的属性和设置外,还可以对url请求、页面加载、渲染、页面交互进行强大的处理。

    总的来说,webView是用于展示网络请求后的结果,比如:开发者开发一款APP,如果想要用它访问网络,但是不想使用手机安装的浏览器,而是想在自己APP内部打开展示网页,此时就可以使用webView这个组件来展示网页。

    e0e137861c52eeb76a0b8725bcb88b69.png

    扩展资料:

    WebView组件使用的WebKit引擎。默认情况下,WebView不支持JavaScript,web页面的错误也会被忽略,如果只是用Webview来显示网页而不用交互,默认配置就可以了。如果需要交互,就需要自定义配置了。

    WebView加载远程网页语法格式:

    webView.loadUrl("http://www.baidu.com");

    WebView加载assets目录下的本地网页语法格式:

    webView.loadUrl("file:///android_asset/test.html");

    WebView加载手机本地网页语法格式:

    webView.loadUrl("content://com.android.htmlfileprovider/sdcard/test.html");

    WebView加载HTML代码片段语法格式:

    webView.loadData(data, "text/html", "utf-8");

    webView.loadDataWithBaseURL(null, data, "text/html", "utf-8", null);

    参考资料来源:百度百科-webkit之WebView

    展开全文
  • Android系统音量变化后会干什么

    千次阅读 2012-12-13 16:14:53
    最近做了一个系统设定画面,要求根据系统音量的变化来修改设定画面view上seekbar的移动位置。 1.首先我们来研究一下如何设置音量大小: AudioManager audioManager = (AudioManager)mContext.getSystemService...

    
    
    最近做了一个系统设定画面,要求根据系统音量的变化来修改设定画面view上seekbar的移动位置。

    1.首先我们来研究一下如何设置音量大小:

    AudioManager audioManager = (AudioManager)mContext.getSystemService(Context.AUDIO_SERVICE);
    		audioManager.setStreamVolume(streamType, index, flags);

    2.下面我们追踪一下源码:

        public void setStreamVolume(int streamType, int index, int flags) {
            IAudioService service = getService();
            try {
                service.setStreamVolume(streamType, index, flags);
            } catch (RemoteException e) {
                Log.e(TAG, "Dead object in setStreamVolume", e);
            }
        }

    3.接着我们要了解一下AudioService是如何实现该方法的:

    public void setStreamVolume(int streamType, int index, int flags) {
            ensureValidStreamType(streamType);
            VolumeStreamState streamState = mStreamStates[STREAM_VOLUME_ALIAS[streamType]];
    
            final int oldIndex = (streamState.muteCount() != 0) ? streamState.mLastAudibleIndex : streamState.mIndex;
    
            index = rescaleIndex(index * 10, streamType, STREAM_VOLUME_ALIAS[streamType]);
            setStreamVolumeInt(STREAM_VOLUME_ALIAS[streamType], index, false, true);
    
            index = (streamState.muteCount() != 0) ? streamState.mLastAudibleIndex : streamState.mIndex;
    
            // UI, etc.
            mVolumePanel.postVolumeChanged(streamType, flags);
            // Broadcast Intent
            sendVolumeUpdate(streamType, oldIndex, index);
        }

    4.研究 sendVolumeUpdate()方法,注意,这里是最主要的:

    private void sendVolumeUpdate(int streamType, int oldIndex, int index) {
            oldIndex = (oldIndex + 5) / 10;
            index = (index + 5) / 10;
    
            Intent intent = new Intent(AudioManager.VOLUME_CHANGED_ACTION);
            intent.putExtra(AudioManager.EXTRA_VOLUME_STREAM_TYPE, streamType);
            intent.putExtra(AudioManager.EXTRA_VOLUME_STREAM_VALUE, index);
            intent.putExtra(AudioManager.EXTRA_PREV_VOLUME_STREAM_VALUE, oldIndex);
    
            mContext.sendBroadcast(intent);
        }

    5.但是由于 AudioManager中 上面的这些常量都被隐藏了,所以这里我将这些常量的字符串定义打印出来。

     /**
         * @hide Broadcast intent when the volume for a particular stream type changes.
         * Includes the stream, the new volume and previous volumes
         *
         * @see #EXTRA_VOLUME_STREAM_TYPE
         * @see #EXTRA_VOLUME_STREAM_VALUE
         * @see #EXTRA_PREV_VOLUME_STREAM_VALUE
         */
        @SdkConstant(SdkConstantType.BROADCAST_INTENT_ACTION)
        public static final String VOLUME_CHANGED_ACTION = "android.media.VOLUME_CHANGED_ACTION";
    

    /**
         * @hide The stream type for the volume changed intent.
         */
        public static final String EXTRA_VOLUME_STREAM_TYPE = "android.media.EXTRA_VOLUME_STREAM_TYPE";

    /**
         * @hide The volume associated with the stream for the volume changed intent.
         */
        public static final String EXTRA_VOLUME_STREAM_VALUE =
            "android.media.EXTRA_VOLUME_STREAM_VALUE";
    
        /**
         * @hide The previous volume associated with the stream for the volume changed intent.
         */
        public static final String EXTRA_PREV_VOLUME_STREAM_VALUE =
            "android.media.EXTRA_PREV_VOLUME_STREAM_VALUE";

    最后,我们就可以通过接受intent来更新自己的view。在发现此方法之前,我做过通过ContentObserver来观测数据库,但是发现其插入数据库的速度较慢,不能及时更新数据库,所以界面也不能及时更新。

    展开全文
  • 一篇文章看明白 Android 系统启动时都什么

    万次阅读 多人点赞 2018-01-26 17:32:44
    Android - 系统启动过程 计算机是如何启动的? 首先熟悉一些概念,计算机的硬件包括:CPU,内存,硬盘,显卡,显示器,键盘鼠标等其他输入输出设备。 所有的软件(比如:操作系统)都是存放在硬盘上,程序执行时...

    Android - 系统启动过程

    相关系列

    计算机是如何启动的?

    首先熟悉一些概念,计算机的硬件包括:CPU,内存,硬盘,显卡,显示器,键盘鼠标等其他输入输出设备。 所有的软件(比如:操作系统)都是存放在硬盘上,程序执行时需要将程序从硬盘上读取到内存中然后加载到 CPU 中来运行。 当我们按下开机键时,此时内存中什么都没有,,因此需要借助某种方式,将操作系统加载到内存中,而完成这项任务的就是 BIOS。

    • 引导阶段

    BIOS: Basic Input/Output System(基本输入输出系统),在 IBM PC 兼容系统上,是一种业界标准的固件接口(来自维基百科)。 BIOS 一般是主板芯片上的一个程序,计算机通电后,第一件事就是读取它。

    BIOS 程序首先检查计算机硬件能否满足运行的基本条件,这叫做"硬件自检"(Power-On Self-Test),缩写为 POST。 如果硬件出现问题,主板会发出不同含义的蜂鸣,启动中止。 如果没有问题,屏幕就会显示出 CPU,内存,硬盘等信息。

    硬件自检完成后,BIOS 把控制权转交给下一阶段的启动程序。 这时 BIOS 需要知道,下一阶段的启动程序到底存放在哪一个设备当中。 也就是说 BIOS 需要有一个外部存储设备的排序,排在前面的设备就是优先转交控制权的设备。 这种排序叫做启动排序,也就是我们平时进入 BIOS 界面时能看到的 Boot Sequence。

    如果我们没有进行特殊操作的话,那么 BIOS 就会按照这个启动顺序将控制权交给下一个存储设备。 我们在使用 U 盘光盘之类的装系统时就是在这里将启动顺序改变了,将本来要移交给硬盘的控制权交给了 U 盘或者光盘。

    第一存储设备被激活后,计算机读取该设备的第一个扇区,也就是读取最前面的 512 个字节。 如果这 512 个字节的最后两个字节是 0x55 和 0xAA ,表明这个设备可以用于启动;如果不是,表明设备不能用于启动,控制权于是被转交给“启动顺序”中的下一个设备。

    这最前面的 512 个字节,就叫做"主引导记录"(Master boot record,缩写为 MBR)。 主引导记录 MBR 是位于磁盘最前边的一段引导代码。它负责磁盘操作系统对磁盘进行读写时分区合法性的判别、分区引导信息的定位,它由磁盘操作系统在对硬盘进行初始化时产生的。 硬盘的主引导记录 MBR 是不属于任何一个操作系统的,它先于所有的操作系统而被调入内存,并发挥作用,然后才将控制权交给主分区内的操作系统,并用主分区信息表来管理硬盘。

    MBR 只有512个字节,放不了太多东西。 它的主要作用是,告诉计算机到硬盘的哪一个位置去找操作系统。 我们找到可用的 MBR 后,计算机从 MBR 中读取前面 446 字节的机器码之后,不再把控制权转交给某一个分区,而是运行事先安装的"启动管理器"(boot loader),由用户选择启动哪一个操作系统。

    • 加载内核阶段

    选择完操作系统后,控制权转交给操作系统,操作系统的内核首先被载入内存。

    以 Linux 系统为例,先载入 /boot 目录下面的 kernel。 内核加载成功后,第一个运行的程序是 /sbin/init。 它根据配置文件(Debian 系统是 /etc/initab )产生 init 进程。 这是 Linux 启动后的第一个进程,pid 进程编号为 1,其他进程都是它的后代。

    然后,init 线程加载系统的各个模块,比如:窗口程序和网络程序,直至执行 /bin/login 程序,跳出登录界面,等待用户输入用户名和密码。

    至此,全部启动过程完成。

    Android 手机的启动过程

    Android 系统虽然也是基于 Linux 系统的,但是由于 Android 属于嵌入式设备,并没有像 PC 那样的 BIOS 程序。 取而代之的是 Bootloader —— 系统启动加载器。 它类似于 BIOS,在系统加载前,用以初始化硬件设备,建立内存空间的映像图,为最终调用系统内核准备好环境。 在 Android 里没有硬盘,而是 ROM,它类似于硬盘存放操作系统,用户程序等。 ROM 跟硬盘一样也会划分为不同的区域,用于放置不同的程序,在 Android 中主要划分为一下几个分区:

    • /boot:存放引导程序,包括内核和内存操作程序
    • /system:相当于电脑c盘,存放Android系统及系统应用
    • /recovery:恢复分区,可以进入该分区进行系统恢复
    • /data:用户数据区,包含了用户的数据:联系人、短信、设置、用户安装的程序
    • /cache:安卓系统缓存区,保存系统最常访问的数据和应用程序
    • /misc:包含一些杂项内容,如系统设置和系统功能启用禁用设置
    • /sdcard:用户自己的存储区,可以存放照片,音乐,视频等文件

    这里写图片描述

    那么 Bootloader 是如何被加载的呢?跟 PC 启动过程类似,当开机通电时首先会加载 Bootloader,Bootloader 回读取 ROM 找到操作系统并将 Linux 内核加载到 RAM 中。

    当 Linux 内核启动后会初始化各种软硬件环境,加载驱动程序,挂载根文件系统,Linux 内核加载的最后阶段会启动执行第一个用户空间进程 init 进程。

    init 进程

    这里写图片描述

    init 是 Linux 系统中用户空间的第一个进程(pid=1),Kernel 启动后会调用 /system/core/init/Init.cpp 的 main() 方法。

    • Init.main()

    首先初始化 Kernel log,创建一块共享的内存空间,加载 /default.prop 文件,解析 init.rc 文件。

    init.rc 文件

    init.rc 文件是 Android 系统的重要配置文件,位于 /system/core/rootdir/ 目录中。 主要功能是定义了系统启动时需要执行的一系列 action 及执行特定动作、设置环境变量和属性和执行特定的 service。

    init.rc 脚本文件配置了一些重要的服务,init 进程通过创建子进程启动这些服务,这里创建的 service 都属于 native 服务,运行在 Linux 空间,通过 socket 向上层提供特定的服务,并以守护进程的方式运行在后台。

    通过 init.rc 脚本系统启动了以下几个重要的服务:

    • servic_emanager:启动 binder IPC,管理所有的 Android 系统服务
    • mountd:设备安装 Daemon,负责设备安装及状态通知
    • debuggerd:启动 debug system,处理调试进程的请求
    • rild:启动 radio interface layer daemon 服务,处理电话相关的事件和请求
    • media_server:启动 AudioFlinger,MediaPlayerService 和 CameraService,负责多媒体播放相关的功能,包括音视频解码
    • surface_flinger:启动 SurfaceFlinger 负责显示输出
    • zygote:进程孵化器,启动 Android Java VMRuntime 和启动 systemserver,负责 Android 应用进程的孵化工作

    在这个阶段你可以在设备的屏幕上看到 “Android” logo 了。

    以上工作执行完,init 进程就会进入 loop 状态。

    service_manager 进程

    ServiceManager 是 Binder IPC 通信过程中的守护进程,本身也是一个 Binder 服务。ServiceManager 进程主要是启动 Binder,提供服务的查询和注册。

    具体过程详见 Binder:Android Binder 进程间通讯

    surface_flinger 进程

    SurfaceFlinger 负责图像绘制,是应用 UI 的和兴,其功能是合成所有 Surface 并渲染到显示设备。SurfaceFlinger 进程主要是启动 FrameBuffer,初始化显示系统。

    media_server 进程

    MediaServer 进程主要是启动 AudioFlinger 音频服务,CameraService 相机服务。负责处理音频解析播放,相机相关的处理。

    Zygote 进程

    fork 创建进程过程:

    Zygote 进程孵化了所有的 Android 应用进程,是 Android Framework 的基础,该进程的启动也标志着 Framework 框架初始化启动的开始。

    Zygote 服务进程的主要功能:

    • 注册底层功能的 JNI 函数到虚拟机
    • 预加载 Java 类和资源
    • fork 并启动 system_server 核心进程
    • 作为守护进程监听处理“孵化新进程”的请求

    当 Zygote 进程启动后, 便会执行到 frameworks/base/cmds/app_process/App_main.cpp 文件的 main() 方法。

    App_main.main() //设置进程名,并启动 AppRuntime。
    AndroidRuntime::start() //创建 Java 虚拟机,注册 JNI 方法,调用 ZygoteInit.main() 方法。
    ZygoteInit.main()   //为 Zygote 注册 socket,预加载类和资源,启动 system_server 进程。
    

    然后 Zygote 进程会进入 loop 状态,等待下次 fork 进程。

    system_server 进程

    system_server 进程 由 Zygote 进程 fork 而来。接下来看下 system_server 启动过程。

    //首先会调用 ZygoteInit.startSystemServer() 方法
    ZygoteInit.startSystemServer()  
    //fork 子进程 system_server,进入 system_server 进程。
    
    ZygoteInit.handleSystemServerProcess()  
    //设置当前进程名为“system_server”,创建 PathClassLoader 类加载器。
    
    RuntimeInit.zygoteInit()    
    //重定向 log 输出,通用的初始化(设置默认异常捕捉方法,时区等),初始化 Zygote -> nativeZygoteInit()。
    
    nativeZygoteInit()  
    //方法经过层层调用,会进入 app_main.cpp 中的 onZygoteInit() 方法。
    
    app_main::onZygoteInit()// 启动新 Binder 线程。
    
    applicationInit()   
    //方法经过层层调用,会抛出异常 ZygoteInit.MethodAndArgsCaller(m, argv), ZygoteInit.main() 会捕捉该异常。
    
    ZygoteInit.main()   
    //开启 DDMS 功能,preload() 加载资源,预加载 OpenGL,调用 SystemServer.main() 方法。
    
    SystemServer.main() 
    //先初始化 SystemServer 对象,再调用对象的 run() 方法。
    
    SystemServer.run()  
    //准备主线程 looper,加载 android_servers.so 库,该库包含的源码在 frameworks/base/services/ 目录下。
    

    system_server 进程启动后将初始化系统上下文(设置主题),创建系统服务管理 SystemServiceManager,然后启动各种系统服务:

    startBootstrapServices(); // 启动引导服务
    //该方法主要启动服务 ActivityManagerService,PowerManagerService,LightsService,DisplayManagerService,PackageManagerService,UserManagerService。
    //设置 ActivityManagerService,启动传感器服务。
    
    startCoreServices();      // 启动核心服务
    //该方法主要
    //启动服务 BatteryService 用于统计电池电量,需要 LightService。
    //启动服务 UsageStatsService,用于统计应用使用情况。
    //启动服务 WebViewUpdateService。
    
    startOtherServices();     // 启动其他服务
    //该方法主要启动服务 InputManagerService,WindowManagerService。
    //等待 ServiceManager,SurfaceFlinger启动完成,然后显示启动界面。
    //启动服务 StatusBarManagerService,
    //准备好 window, power, package, display 服务:
    //	- WindowManagerService.systemReady()
    //	- PowerManagerService.systemReady()
    //	- PackageManagerService.systemReady()
    //	- DisplayManagerService.systemReady()
    

    所有的服务启动完成后会注册到 ServiceManager。
    ActivityManagerService 服务启动完成后,会进入 ActivityManagerService.systemReady(),然后启动 SystemUI,WebViewFactory,Watchdog,最后启动桌面 Launcher App。

    最后会进入循环 Looper.loop()。

    ActivityManagerService 启动

    启动桌面 Launcher App 需要等待 ActivityManagerService 启动完成。我们来看下 ActivityManagerService 启动过程。

    ActivityManagerService(Context) 
    //创建名为“ActivityManager”的前台线程,并获取mHandler。
    //通过 UiThread 类,创建名为“android.ui”的线程。
    //创建前台广播和后台广播接收器。
    //创建目录 /data/system。
    //创建服务 BatteryStatsService。
    
    ActivityManagerService.start()  //启动电池统计服务,创建 LocalService,并添加到 LocalServices。
    
    ActivityManagerService.startOtherServices() -> installSystemProviders()
    //安装所有的系统 Provider。
    
    ActivityManagerService.systemReady()
    //恢复最近任务栏的 task。
    //启动 WebView,SystemUI,开启 Watchdog,启动桌面 Launcher App。
    //发送系统广播。
    

    启动桌面 Launcher App,首先会通过 Zygote 进程 fork 一个新进程作为 App 进程,然后创建 Application,创建启动 Activity,最后用户才会看到桌面。

    完整启动过程

    这里写图片描述

    参考资料

    其他系列

    Gradle 系列

    更多文章:

    这是我博客长期更新的项目,欢迎大家 Star。
    https://github.com/jeanboydev/Android-ReadTheFuckingSourceCode

    我的公众号

    欢迎你「扫一扫」下面的二维码,关注我的公众号,可以接受最新的文章推送,有丰厚的抽奖活动和福利等着你哦!?

    如果你有什么疑问或者问题,可以 点击这里 提交 issue,也可以发邮件给我 jeanboy@foxmail.com

    同时欢迎你 Android技术进阶:386463747 来一起交流学习,群里有很多大牛和学习资料,相信一定能帮助到你!

    展开全文
  • 在windows系统中操作运行原来的所有程序,的事;在安卓系统中运行安卓软件,比如 安装游戏APP玩手游、安装“电视家”APP取代机顶盒、安装网络教育APP上网课,以大屏的PC形态为孩子打造沉浸式的学习体验等等。...

    在windows系统的电脑上再安装一个安卓系统,实现双系统自由切换。在windows系统中操作运行原来的所有程序,干该干的事;在安卓系统中运行安卓软件,比如 安装游戏APP玩手游、安装“电视家”APP取代机顶盒、安装网络教育APP上网课,以大屏的PC形态为孩子打造沉浸式的学习体验等等。真正做到一机多用,其乐无穷!

    下面是在电脑上安装凤凰OS系统的具体操作:

    一.下载凤凰安卓系统x86 安装程序

    打开凤凰系统Phoenix OS的官网http://www.phoenixos.com/ 选择需要安装的版本下载。

    215760033_1_20210220031221349

    “教育版”有专为学生设计的桌面,可以引导孩子快速地打开学习应用。

    “标准版”可以安装运行安卓版的APP。我选择标准版,主要用在大屏幕上为中老年人讲解手机的基本应用以及演示讲解使用APP进行修图、视频制作等等操作。

    标准版下有两个版本,其中64位适用安卓7.1,32位适用安卓5.1。不必选择ISO镜像,直接点“安装程序”后边的官方下载。

    215760033_2_20210220031221490

    二.安装凤凰OS系统

    下载的文件是一个可直接安装的程序,约几百兆大小。

    1. 打开凤凰OS的安装程序,选择自定义安装。

    215760033_3_20210220031221599

    2. 在自定义安装界面,点击安装到硬盘选项,选择空间较大的分区,按提示执行下一步操作。安装的凤凰系统以一个文件夹的形式存在,它不会改变原来磁盘中的文件。

    215760033_4_20210220031221677

    3.点“全新安装”,选择存储容量,大约几分钟,系统安装成功,重启电脑。

    三 .使用凤凰OS系统

    1.电脑重启之后,多出一个启动选项,通过键盘的上下方向键,选择使用哪个系统。

    点击phoenixos,系统会初始配置过程。

    215760033_5_20210220031221787

    2.按提示设置,进入凤凰系统页面。安装适用的APP之后,即可尽情使用。虽是安卓系统,但操作方式如同windows一样方便。

    215760033_6_20210220031221881

    展开全文
  • 只有一张图片:但是我觉得非常系统,非常棒。
  • add-ons 这里面保存着附加库,比如google Maps,当然你如果安装了...market_licensing 作为Android Market版权保护组件,一般发布付费应用到电子市场可以它来反盗版。 platforms 是每个平台的SDK真正的文件,里面会
  • 【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>> ...
  • Android 应用开发转 Framework 层开发了,从此开启了 996 幸福生活,博客技术文更新基本停滞了,被工作占据了过多的精力,实在没时间像以前一样拟稿、写作,实践、反复修改去精心准备文章,另外也不知道该写什么了,...
  • 什么是注解,注解的原理,利用注解可以干什么 设计模式 单例模式 生产者消费者模式 代理模式 工厂模式 建造者模式 安卓 Android基础 活动的生命周期 片段生命周期 上下文类相关内容 MVC,MVP,MVVM异同 生命周期的...
  • iOS 系统的推送(APNS,即 Apple Push Notification Service)依托一个或几个系统常驻进程运作,是全局的(接管所有应用的消息推送),所以可看作是独立于应用之外,而且是设备和苹果服务器之间的通讯,而非应用的...
  • 1. add-ons 这里面保存着附加库,比如google Maps,当然你如果安装了OPhone SDK,这里也会有...3. extras/market_licensing 作为Android Market版权保护组件,一般发布付费应用到电子市场可以它来反盗版。  4. pla
  • 华为鸿蒙系统2.0是什么Android的升级版?

    万次阅读 多人点赞 2020-10-11 17:29:24
    这次鸿蒙系统2.0的发布给国人带来极大的振奋,虽然有一部分人不断唱衰,觉得是大家被爱国情怀所左右,但大部分人的激动其实原因很简单,人人都知道华为被制裁不是公司级别的竞争,而是国家和国家实力的斡旋。...
  • android /data/system/betterystats.bin 这个betterystats.bin文件仅仅是一个记录不同app使用电量的一个文件。也就是说,它的作用仅仅是让你点击 设置-电池 看到的那个画面!当你充满电以后拔掉充电器,...
  • 深入理解Android Build系统

    千次阅读 2017-04-02 22:41:56
    Android系统中,Android 的源码中包含了许许多多的模块。 不同产商的不同设备对于 Android 系统的定制都是不一样的。如何将这些模块统一管理起来,如何能够在不同的操作系统上进行编译,如何在编译时能够支持面向...
  • Mac版MuMu安卓模拟器是网易官方推出的精品游戏服务平台,安装后可在电脑上运行各类游戏与应用。mac版网易mumu以其全面兼容、操作流畅、智能辅助等特点深受广大Mac用户的喜爱,但是该软件的运行对电脑系统有一定要求。...
  • Android 系统字体

    万次阅读 2015-09-18 13:26:24
    0、对Android字库的认识:Android系统对字体的载入和Linux桌面很像,有一个Priority Order(优先级顺序)的,当然先是西方字符,然后是一些符号字体(包括emoji字体),再就是中日韩字符(DroidSansFallback.ttf包含...
  • linux系统和Android系统的区别

    千次阅读 2019-05-27 13:36:57
    众所周知Google的Android系统跟Linux系统有着千丝万缕的关系,可究竟有什么关系呢?有人说Android是Android,Linux是Linux,两个只是kernel一样调度机制一样,其他没一毛钱关系,有人说Android说到底就是个Linux系统...
  • 众所周知Google的Android系统跟Linux系统有着千丝万缕的关系,可究竟有什么关系呢?有人说Android是Android,Linux是Linux,两个只是kernel一样调度机制一样,其他没一毛钱关系,有人说Android说到底就是个Linux系统...
  • 1.这个其他帐号到到底是干什么,有什么作用??(不知小米手机,华为,酷派都有。) 2.微信,微博等可以自动添加,但是QQ等一些应用程序不能添加,为什么? 3.网上说,添加了帐号的话,系统会自动进行备份...以微信...
  • 当我们按下手机开机按键后,手机就会启动了。然后会看到 Logo,开机动画,最后会进入到手机桌面...如果你也有相同疑惑,请继续往下看,我将从源码的角度分析下 Android 系统启动的整个流程。 计算机是如何启...
  • Android系统源码学习步骤

    千次阅读 2014-04-19 16:25:40
    随时随地阅读更多技术实战干货,充分利用闲暇...众所周知,如今在移动平台市场上,苹果的iOS、谷歌的Android和微软的Windows Phone系统已经形成了三足鼎立的形势,而Android系统的市场占有率是最高的。Android系统之...
  • 安卓Android手机系统内文件夹全解

    千次阅读 2012-08-07 15:28:15
    Android系统的开放,使其用户可以自己查看系统和SD卡中的文件夹。就系统和SD卡中常见的目录代表什么意思,下面是一个较实用的总结:   一、SD卡中  1. /mnt/sdcard或者/sdcard这是Android手机中SD卡的...
  • 网上很多讲Android Studio调试系统源码的方法,看着眼馋,最近终于跑通了,分享下自己的经验! 目录 调试环境 导入系统源码的方法 导入系统源码后的一些配置 1 配置SDK 打开工程配置界面 配置工程的SDK,...
  • Android Context 是什么

    万次阅读 多人点赞 2015-08-12 14:17:48
    【转载请注明出处:http://blog.csdn.net/feiduclear_up CSDN 废墟的树】引言Context对于Android开发人员来说并不陌生,项目中我们会经常使用Context来获取APP资源,创建UI,获取系统Service服务,启动Activity,...
  • Android系统分区介绍

    2020-09-09 15:06:03
    Android系统分区介绍 hboot——系统开机引导类似电脑BIOS,这块刷错手机就会变成砖 radio——通讯模块、基带、WIFI、Bluetooth等衔接硬件的驱动软件 model分区 recovery——系统故障时负责恢复 boot——Linux嵌入式...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 68,509
精华内容 27,403
关键字:

安卓系统是干什么用的