在模拟器中调试Launcher模块代码
Ubuntu下Android源码修改、编译及运行、launcher定制

环境Linux 版本:Ubuntu 11.04 (可由10.10的版本进行升级)64位系统GCC版本:gcc version 4.5.2Java版本:java version "1.6.0_26"下载android源码前注意:1、保证Ubuntu系统中的容量在80G左右,以保证足够的空间来存放android源码以及编译后的相关文件。
2、保证Ubuntu系统进行Internet访问。
联网方法:采用拨号进行连接。
相关操作步骤如下所示:1、虚拟机→设置→硬件→网络适配器→网络连接→桥接2、启动Ubuntu系统,打开终端(在普通用户下),输入相关命令如下:$ pppoeconf //打开后输入上网账号跟密码,确认保存$ sudo pon dsl-provider //上网连接命令经过这两个步骤后就可以进行上网了。
Android源码编译所依赖的tools01.$ sudo apt-get update02.$ sudo apt-get -y install git-core03.$ sudo apt-get -y install gnupg04.$ sudo apt-get -y install sun-java6-jdk flex05.$ sudo apt-get -y install bison06.$ sudo apt-get -y install gperf07.$ sudo apt-get -y install libsdl-dev08.$ sudo apt-get -y install libesd0-dev09.$ sudo apt-get -y install libwxgtk2.6-dev10.$ sudo apt-get -y install build-essential11.$ sudo apt-get -y install zip12.$ sudo apt-get -y install curl13.$ sudo apt-get -y install libncurses5-dev14.$ sudo apt-get -y install zlib1g-dev15.$ sudo apt-get -y install valgrind注意:(如果是32bit的系统的话,则要更改几个Android.mk文件)01./external/clearsilver/cgi/Android.mk02./external/clearsilver/java-jni/Android.mk03./external/clearsilver/util/Android.mk04./external/clearsilver/cs/Android.mk用gedit打开,修改m64为m32即可另外将build/core/main.mk中的ifneq (64,$(findstring 64,$(build_arch)))修改为:ifneq (i686,$(findstring i686,$(build_arch)))对于32位系统所出现的问题,解决方法:Error1:make: ***[out/host/linux-x86/obj/STATIC_LIBRARIES/libutils_intermediates/RefBase.o] error 1在terminal中输入$ gedit frameworks/base/libs/utils/Android.mk将LOCAL_CFLAGS += -DLIBUTILS_NATIVE=1 $(TOOL_CFLAGS)修改为:LOCAL_CFLAGS += -DLIBUTILS_NATIVE=1 $(TOOL_CFLAGS) –fpermissiveError2:make: *** [out/host/linux-x86/obj/EXECUTABLES/obbtool_intermediates/Main.o] error 1此处编译错误是由于ubuntu 11.10采用了GCC4.6.1导致的修改源码目录下/build/core/combo/HOST_linux-x86.mk并将以下语句:HOST_GLOBAL_CFLAGS+= -D_FORTIFY_SOURCE=0修改为:HOST_GLOBAL_CFLAGS+= -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=0Android源码下载1、安装repo安装过程步骤如下所示:Repo下载安装1、$ mkdir ~/bin //在home目录下创建bin文件夹2、$ PATH=~/bin:$PA TH //环境变量设置3、$ curl https:///dl/googlesource/git-repo/repo > ~/bin/repo //repo下载4、$ chmod a+x ~/bin/repo //权限设置,保证repo可执行Repo client初始化1、$ mkdir Android //创建Android目录,用于存放下载的android源码2、$ cd Android //进入到Android目录3、$ repo init -u https:///platform/manifest //指定URL清单,指定包含在Android源代码的各种存储库将被安置在工作目录中当然也可以指定android版本,使用如下命令:$ repo init -u https:///platform/manifest -b android-4.0.1_r1Android源码文件获取$ repo sync注意:在Android源码下载过程中凡出现问题,可以进入Android源码下载的相关官方网站/source/downloading.html 进行查看。
手把手教你开发安卓Launcher

launcher,也就是android的桌面应用程序。
下图是android2.3的launcher应用程序:接下来我们要开发一个自己的launcher,使其替代系统的默认launcher。
怎样使我们的应用程序成为一个launcher?下面我们就新建一个叫做MyHome的工程,具体步骤略。
创建完工程后整个目录结构如下图:现在我们的AndroidManifest.xml文件这样的:<?xml version="1.0" encoding="utf-8"?><manifest xmlns:android="/apk/res/android"package="org.bangchui.myhome"android:versionCode="1"android:versionName="1.0"><application android:icon="@drawable/icon" android:label="@string/app_name"> <activity android:name=".MyHome"android:label="@string/app_name"><intent-filter><action android:name="android.intent.action.MAIN" /><category android:name="UNCHER" /></intent-filter></activity></application></manifest>请注意<intent-filter></intent-filter>里面的内容。
launcher2 启动过程

LauncherApplication->onCreate--1.//设置最小堆内存4M--2.//建立应用图标缓存器--3.//建立LauncherModel--4.//注册Intent.ACTION_PACKAGE_ADDED,Intent.ACTION_PACKAGE_REMOVED,Intent.ACTION_PACKAGE_CHANGED事件监听器LauncherModel作为广播接收器对上面3中事件进行监听--5.//添加对桌面favorites content provider 数据变化监听器二Launcher->onCreate--1.获取LauncherApplication LauncherModel mIconCache等LauncherApplication初始化的对象--2.新建拖放控制器new DragController(this)--4.//获取桌面组件管理器,启动桌面组件host--待深入研究--5.//从array.hotseats中加载所有的hotseats(热键如挂机按钮,google浏览器) --待深入研究--6.从launcher.preferences加载本地设置--7.//设置壁纸尺寸宽度=display.getWidth()* WALLPAPER_SCREENS_SPAN,高度=display.getHeight()--8.//加载布局文件--9.//初始化所有控件--10.//从Bundle savedInstanceState获取桌面持久化数据设置mRestoring = true;--11.如果mRestoring == false,调用LauncherModel加载桌面项mModel.startLoader(this, true,isLanguageChange);uncherModel.Loader.startLoader() 代码同步处理--b.新建LauncherModel.Loader.LoaderThread线程并启动线程(桌面项加载,详细见第三步)--12.注册Intent.ACTION_CLOSE_SYSTEM_DIALOGS广播监听三桌面项加载LauncherModel.Loader.LoaderThread.run:新线程执行--1.等待主线程运行结束才开始加载--2.判断是否先加载桌面;loadWorkspaceFirst = cbk != null ? (!cbk.isAllAppsVisible()) : true;--3.loadWorkspaceFirst==true--a.loadAndBindWorkspace()--loadWorkspace():从数据库launcher.db中查询中所有桌面项构造对应类型的ItemInfo对象存入mItems,mAppWidgets,mFolders列表。
Android SDK Emulator模拟器使用教程

Android SDK Emulator 是谷歌手机应用开发包中的一个模拟器组件,它可以在Windows、Mac 或Linux电脑上运行,这个模拟器是用来让开发者开发软件时进行测试的。
我们可以利用这个免费的模拟器在我们的电脑上好好体验一下Android了……运行Android模拟器需要Java,所以如果你的电脑上还没安装Java的话,就从这里下载,然后像平常那样安装。
注意:安装Java的时候注意不要连带装上一些没用的软件,如雅虎工具栏。
然后下载Android SDK (下载链接在文章结尾处),注意选择适合你电脑的正确版本。
下载完后解压缩。
在Windows中,运行SDK Setup.exe开始在你的电脑上运行Android。
Android SDK将会连上Google的服务器检查可用的包裹。
如果你看到一条关于SSL的错误信息,点击Settings标签(在SDK and AVD Manager窗口左边)。
然后把Force https://前面的勾去掉,点确定,然后重新打开安装程序。
好了,现在包裹安装器会打开。
你可以选择你想要安装的包裹,然后点击Install(安装)来开始将Android模拟器安装在你电脑上。
默认情况下,所有版本的SDK平台、示例和API都会被勾选进行安装。
这需要等它们全部下载下来,确实要一段时间。
如果你只是想玩玩Android,选择你想要的版本就行了。
你可以只安装名为SDK Platform Android 你想要的版本的项目,你只需要在其他不需要的项目下点Reject选项就行了,然后点Install。
我们将试一下最新的Android 2.2和老的1.5,所以我们将这两个都下载下来。
开始安装后,你会看到有个窗口显示下载和安装的进度。
这要花几分钟时间,时间取决于你的网速。
你会在你的任务栏看到一些小机器人,但是不幸的是它们并不显示下载进度。
下载好后,你可以设置一个模拟器来在你的电脑上体验Android。
python的launcher用法知识点总结

python的launcher⽤法知识点总结python launcher是适⽤于 Windows 的 Python 启动器,可帮助您定位和执⾏不同的 Python 版本。
它允许脚本(或命令⾏)为特定的 Python 版本指⽰⾸选项,定位并执⾏该版本。
不同于 PATH 变量,Python Launcher 将正确选择最合适的 Python 版本。
它更喜欢每个⽤户在系统范围内的安装,并且运⾏指定的 Python 版本,⽽不是使⽤最近安装的版本。
python2.7⽂件头#! python2.7import sysprint(sys.version)# --------- 以上为⽂件内容,以下为执⾏结果 --------------M:\>py test.py2.7.14 (v2.7.14:84471935ed, Sep 16 2017, 20:19:30) [MSC v.1500 32 bit (Intel)]python3.7 ⽂件头#! python3import sysprint(sys.version)# --------- 以上为⽂件内容,以下为执⾏结果 --------------M:\>py test.py3.7.0 (v3.7.0:1bf9cc5093, Jun 27 2018, 04:06:47) [MSC v.1914 32 bit (Intel)]知识点扩展:什么是 Python Launcher适⽤于 Windows 的 Python 启动器是⼀个实⽤组件,可帮助您定位和执⾏不同的 Python 版本。
它允许脚本(或命令⾏)为特定的 Python 版本指⽰⾸选项,定位并执⾏该版本。
不同于 PATH 变量,Python Launcher 将正确选择最合适的 Python 版本。
它更喜欢每个⽤户在系统范围内的安装,并且运⾏指定的 Python 版本,⽽不是使⽤最近安装的版本。
Ubuntu下Android源码修改编译及运行launcher定制

Ubuntu下Android源码修改编译及运行launcher定制在Ubuntu下进行Android源码的修改、编译和运行,以及定制launcher,需要以下步骤:1.安装必要的软件和依赖项:在Ubuntu终端中输入以下命令来安装必要的软件和依赖项:```sudo apt-get updatesudo apt-get install git-core gnupg flex bison gperf build-essential \zip curl zlib1g-dev gcc-multilib g++-multilib libc6-dev-i386 \lib32ncurses5-dev x11proto-core-dev libx11-dev lib32z-dev ccache \libgl1-mesa-dev libxml2-utils xsltproc unzip``````mkdir ~/android-sourcecd ~/android-sourcerepo sync```3.修改源码:进入源代码的根目录:```cd ~/android-source```进行所需的修改,如添加新功能、修改界面等。
4.编译源码:在源码目录下执行以下命令以编译源码:```. build/envsetup.shlunchmake````lunch`命令会提示选择要编译的目标平台和设备,选择相应的选项后执行`make`命令进行编译。
5. 运行Android模拟器或设备:在源码目录下执行以下命令来运行Android模拟器或设备:```emulator```或者连接一台Android设备并执行以下命令:```adb devicesadb shell```6. 定制Launcher:Launcher是Android系统的主屏界面,可以对其进行定制以满足特定需求。
以下是一些定制Launcher的方法:- 修改源码中Launcher的布局和样式:可以修改源码中的布局文件和样式文件来改变Launcher的外观。
Android模拟器调试

如:adb shell dmesg会打印出内核的调试信息。
(Android的linux shell做了大量精简,很多linux常用指令都不支持)
上传文件: adb push <PC文件> </tmp/...>
下载文件: adb pull </tmp/...> <PC文件>
am指令(在shell内使用am来加载android应用):
am [start|instrument]
am start [-a <ACTION>]
[-d <DATA_URI>]
[-t <MIME_TYPE>]
[-c <CATEGORY> [-c <CATEGORY>] ...]
4. cd after_install
5. tar -xf ../data.tar
目前来看,就是/data/app和data/data下多了两个相关文件,同时在/data/system/packages.xml中增加了安装的程序信息。似乎菜单也是从这个文件中得到是否新安装程序,以及如何显示相关信息比如名称什么的。
2.为模拟器加上SD卡:
emulator -sdcard D:\sdcard.img
下面我们再来说说如何创建"sdcard.img"文件:
“tools”目录下还有另外一个很好用的工具“mksdcard.exe”,一看名字就知道——make sdcard。对,就用它来创建一个“SD卡”。
目前的安装模式
安装前:
1. emulator -wipe-data
模拟器使用方法

N3ds常见模拟器使用方法教程:最下方的网盘有模拟器下载.不定期更新模拟器.从网上下的.无卡破解的新小三只要安装cia版本的就行了.无视其他格式的文件.模拟器教程在下面.会不定期更新的.========================================================== GameYob---------------GB/GBC模拟器(强烈推荐)mGBA-----------------GBA模拟器(强烈推荐)RetroArch--------------RetroArch模拟器集,里面包含很多模拟器.我把常用的标一下.有些我自己都不知道是什么.(后面打@的是我在用的模拟器.强烈推荐的是使用比较优秀完成度比较高的模拟器.该系列模拟器重复的较多.可自己尝试.估计能互补)2048_libretro-----------------catsfc_libretro-----------------SFC模拟器(老核心)catsfc_plus_libretro-----------------SFC模拟器(老核心)dosbox_libretro-----------------DOS模拟器fb_alpha_cps1_libretro-----------------卡普空CPS1街机模拟器(早期游戏.如街霸2.三国志2.恐龙快打.龙王等)fb_alpha_cps2_libretro-----------------卡普空CPS2街机模拟器.(晚期游戏.如少年街霸系列.龙与地下城系列.魔法大作战等)fb_alpha_libretro-----------------多种街机模拟器(支持CPS1,CPS2,NEOGEO,Cave等街机游戏)fb_alpha_neo_libretro-----------------snk街机模拟器(如侍魂系列.格斗之王kof系列.合金弹头系列等) @(推荐)fceumm_libretro-----------------任天堂FC红白机模拟器@(强烈推荐)fmsx_libretro-----------------MSX,MSX2模拟器gambatte_libretro-----------------GB和GBC模拟器@(推荐)genesis_plus_gx_libretro-----------------世嘉MD模拟器@(推荐)gpsp_libretro-----------------GBA模拟器mame2000_libretro-----------------全能街机模拟器mame2003_libretro-----------------全能街机模拟器mednafen_ngp_libretro-----------------SNK掌机ngp的模拟器@(强烈推荐)mednafen_pce_fast_libretro-----------------PCE模拟器@ (强烈推荐)mednafen_vb_libretro-----------------Virtual Boy(VB游戏机)模拟器mednafen_wswan_libretro-----------------万代的掌机WS和WSC游戏模拟器mgba_libretro-----------------GBA模拟器nestopia_libretro-----------------任天堂FC红白机模拟器nxengine_libretro-----------------PC版的洞窟物语模拟器pcsx_rearmed_libretro-----------------索尼PS1模拟器@ (推荐)picodrive_libretro-----------------世嘉MD模拟器@ (强烈推荐)pocketsnes_libretro-----------------超任SFC模拟器@ (强烈推荐)quicknes_libretro-----------------任天堂FC红白机模拟器snes9x_next_libretro-----------------超任SFC模拟器@(推荐)模拟器介绍和使用方法:------------------------------------------------------------------------------------------首先是GB/GBC的模拟器(GameYob).相当的成熟了.进入游戏后点击下屏会出现设置菜单.按b键退出设置.黄色的光标挪到最上面的选项后可以用左右选择设置分类.(由于该模拟设置比较直接简单.我就说下关键性的几个设置了)-------------------------------------------------------------------------------------------在game的大类里有退出游戏(exit).重启游戏(reset).快速保存(save state)和读取(load state).金手指管理(manage cheats).退出模拟器(quit to launcher)等选项.在gameyob的大类里有按键设置(button mapping).保存设置(save settings)等选项. 在gameboy分类里各种模式选择.这里的SGB Mode模式最好关闭(off)打开的话会让部分游戏色彩不正常(如DQM1).未研究明白.在display大类里有游戏画面位置(game screen).游戏画面大小(scaling).滤镜(scale filter)(推荐用scale2x).跳帧(ff frame skip).调色板(colorize gb)(让黑白的gb游戏变成彩色.推荐用dark gree).边框管理(borders)等重要设置.模拟的边框设置.由于gbc游戏的画面是方形的.而3ds的屏幕是长条形的.所以在玩游戏的时候游戏画面外会有一圈大大的黑边.这个模拟器可以让自己选择一个专用图片作为黑边的填充.也就是边框画面填充了.让画面变得更加饱满和舒适.设置的方法为在display大类里的边框管理(borders)选项选择为自定义(custom).然后在最下面的选择边框(select border)里选择自己的边框文件.(边框文件已提供下载了.在{GB模拟器GameYob的皮肤}文件夹中)设置完成后记得去gameyob大类下面的save settings里按一下a键保存下设置.快捷键:ZR为画面缩放调整.ZL为调出菜单.L键为游戏加速.再按就停止加速.R键为保存游戏X键为连发A键.Y键为连发B键.方向键和摇杆还有c摇杆都是控制方向.------------------------------------------------------------------------------------------然后是GBA模拟器(mGBA-nightly.独立的那个).大部分的游戏都能在50fps左右的帧率运行了(跳帧1的情况下).这个模拟器y键是调整游戏画面位置和大小.几个预定的显示方式循环选择.x键为菜单.比较重要的有快速保存.快速读取.退出游戏.游戏设置(configure)游戏设置里面有跳帧设置(frameskiip).按键设置(remap controls)游戏画面大小位置预设(screen mode)最后两项是保存设置改变和取消设置改变.这个模拟器最变态的一点是退出模拟器的方式.要在游戏中按x键调出模拟器菜单.选择最后一项退出游戏(exit game).这个时候会返回游戏列表.然后按x键才能退出.或者在游戏列表中将光标移动到游戏列表的最上方的(up)选项上.按a键确认后会返回上层菜单.继续选择(up).这样一直按到sd卡根目录后再选择(up)就能退出模拟器返回桌面了.=================================================剩下的md.sfc.fc.ps.pce等模拟器都是一个叫做RetroArch的子类模拟器.所以设定都是差不多的而且这个类型的模拟器最好不要胡乱设置.他的设置很多都是会互相影响的.----------------------------------------------------------------------------这个模拟的下屏会有很多字母数字信息.要是看了不爽可以点击下屏的上半屏关闭下屏显示.点击下屏的下半屏为调出快速菜单.按b键返回可以退回模拟器主菜单.再次点击下屏的下半屏为关闭菜单.该模拟器的主菜单的设置(settings)里面的视频(video)选项中有个hw双线性过滤渲染选项(hw bilinear filtering)默认为打开的(on)这种情况下画面较柔和.但是会使得画面有比较模糊的感觉.关闭(off)这个选项可以使画面锐利清晰(类似点对点).但会有狗牙锯齿出现的感觉.自己根据需要调整.-------------------------------------------------------------------------------------------设置(settings)里面的配置(configuration)选项中有个配置每个核心(configruation per-core)选择为打开(on).设置完选项后回到主菜单选择保存当前配置(save current config).这样你的配置就不会跟其他的模拟设置起冲突了.-----------------------------------------------------------------------------------------默认路径的修改设置(settings)里的目录(directory)中可以调整各种目录的位置.其中的文件目录地址(file browser dir)可以根据需要自己修改游戏文件存放的目录。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
在模拟器中调试Launcher模块:
1.把android源代码下packages包里的Launcher2作为一个android工程新建起来
2.为解决eclipse解析代码报错,右键工程点属性,新建该工程所需的库文件,并添加如下图所
示的三个classes.jar文件(分别是framework/search/runtime所需的)
3.在Order and Export标签中使新建的库文件排在最上面
4.卸载模拟器之前的Launcher,否则新建的Launcher工程无法运行.
打开终端,
adb remount
adb shell
cd system/app
rm Launcher2.apk (此命令执行完后模拟器主菜单界面会消失)
exit
adb uninstall uncher
5.执行新建的Launcher工程,操作主菜单界面就可以看到LOG了.
6.打开DDMS,在Devices标签下对应的模拟器里选要调试的包,点一下绿色的小蜘蛛,就可
以在代码里加断点来跟踪了.。