① 如何创建为android可加载内核模块
<一个href="http://tthtlc.word$p$pss.com/2011/12/29/how-to-write-a-kernel-mole-on-android-sony-ericsson-xperia-arc-s/" rel="nofollow">http://tthtlc.word$p$pss.com/2011/12/29/how-to-write-a-kernel-mole-on-android-sony-ericsson-xperia-arc-s/
我写并测试了code对我的索尼爱立信Xperia Arc S和它的工作原理(一般在应该适用于所有Android手机)。
通过亚洲开发银行和USB,和“苏”根连接,在“lsmod的”中列出的所有内核模块(在一般情况下,在文章的 http://developer.sonyericsson.com/wp/2011/05/06/how-to-build-a- { 返回0; } { }
<一个href="http://developer.sonyericsson.com/wportal/devworld/downloads/download/30a2181182tarbz2?cc=gb&lc=en" rel="nofollow">http://developer.sonyericsson.com/wportal/devworld/downloads/download/30a2181182tarbz2?cc=gb&lc=en
② android 插件化怎么把几个模块一起打包
1、java 里面直接把 .class 文件打包到 .jar 文件里面就可以了,但是 Android 的 Dalvik VM 是不认 Java 的 byte code 的,所以不能直接这么打包,而要用 dx 工具转成 Dalvik byte code 才可以。当然,dx 工具转了之后,jar 包里面就不是 .class 文件了,而是 .dex 文件。 2、可以做成server 利用broadcast,pendingIntent,Intent去通信,再provider数据共享过滤器设置下就能实现这样的效果 3、国内的各大应用市场的安卓客户端就是这么做的,由市场客户端可以下载各个功能客户端,在市场里可以对这些功能客户端进行更新、删除、打开操作。其实如果需求是定制化的应用市场,比如“办公应用市场”,在功能性的规则接口定义好之后,可以增加更多的业务逻辑,比如说“从市场客户端开启功能客户端的具体某个页面”,或者“从市场客户端调用功能客户端的某个功能”。
③ android 模块化 application应该放在哪
通过Intent你可以把一个应用当作你的高级库,使你的代码模块化易复用。例如:Android主屏幕中的拨号功能,就是通过Intent调用的拨号程序。 * method queries the package manager for installed packages that can * respond to an intent with the specified action. If no suitable package is * found, this method returns false.** @param context The application's environment. * @param action The Intent action to check for availability.** @return True if an Intent with the specified action can be sent and * responded to, false otherwise.*/public static boolean isIntentAvailable(Context context, String action) { final PackageManager packageManager = context.getPackageManager(); final Intent intent = new Intent(action); List<ResolveInfo list = packageManager.queryIntentActivities(intent, PackageManager.MATCH_DEFAULT_ONLY); return list.size() 0;}使用方法如下:@Overridepublic boolean onPrepareOptionsMenu(Menu menu) { final boolean scanAvailable = isIntentAvailable(this, com.google.zxing.client.android.SCAN); MenuItem item; item = menu.findItem(R.id.menu_item_add); item.setEnabled(scanAvailable); return super.onPrepareOptionsMenu(menu);}在这个例子中,如果条形码扫描应用没有安装菜单会被置灰,不可用。 另用简单的方式是在调用startActivity()时捕获ActivityNotFoundException, 但是这种方式只能异常发生后对用户进行提醒,不能提前告知用户,它可以用在提醒用户安装缺失应用的场合,你可引导用户去应用市场上去下载安装。
④ android studio中以library形式的模块在androidmanifest文件中怎么写
是的,不管是eclipse还是studio,都是在AndroidManifest.xml中增加权限。Android Studio 是一个Android开发环境,基于IntelliJ IDEA. 类似 Eclipse ADT,Android Studio 提供了集成的 Android 开发工具用于开发和调试。在IDEA的基础上,Android Studio 提供 : 1. 基于Gradle的构建支持。 2. Android 专属的重构和快速修复。 3. 提示工具以捕获性能、可用性、版本兼容性等问题。 4. 支持ProGuard 和应用签名。 5. 基于模板的向导来生成常用的 Android 应用设计和组件。 6. 功能强大的布局编辑器,可以拖拉 UI 控件并进行效果预览。
⑤ Android Studio怎么新建Android公共库模块
Android Studio新建Android公共库模块的方法步骤:
在Android Studio中依次点击【File】——【New Mole】,打开窗体【Create New Mole】,选择选项【Android Library】,点击按钮【Next】。
输入模块的Library Name和Mole Name,然后点击按钮【Finish】。即可完成公共库模块的添加。
⑥ 如何将android模块生成apk
执行:$ cd <android>源码目录 $. build/envsetup.sh $ mmm packages/apps/<xxx> 你所要编译的模块或者你直接打make也可以,模块编译后会在out/target/proct/generic/system/app下生成对应的.apk包
⑦ 如何将android studio中的一个功能模块独立出来
1.Eclipse下App放置在项目根目录的bin目录中 2.而Android studio大改后,放在了mole中,所以你一定要记得你的存放路径。也就是工程对应的文件夹。 android studio工程的存储路径下app/build/outputs/apk 其中app是你的mole,在对应的mole下即可找到
⑧ 如何使用ApkPlug进行Android平台下模块化开发
步骤1:注册ApkPlug官网账号:
打开Apkplug官网后,点击右上角的“注册”,在跳转页面填入相关信息,注册界面如下:
确认后注册成功,使用你的账号登录网站。你就可以用Apkplug开发应用了
END
步骤2:开发插件
Apkplug中的插件也是一个完整的apk,它与普通应用的区别有以下3点:
1, 插件assets目录下有一个plugin.xml文档,通过它可判断一个工程是主应用还是插件。
2, 插件有一个入口类BundleActivator
3, 插件会外部引用一个osgi.jar文件
开发插件的步骤有如下4步:
1,引入osgi.jar库文件
Apkplug中插件需要导入的库文件只有一个osgi.jar。
导入osgi.jar库文件需要注意一下
osgi.jar文件只能引用不能编译到apk文件中,否则会出现类冲突的情况
异常代码:had used a different Lorg/osgi/framework/BundleActivator; ring pre-verification。
osgi.jar包导入方法:
这文件在Apkplug SDK中可以找到。
2,编写插件入口类BundleActivator
插件启动时首先调用BundleActivator,其功能类似android中的application类。
public class SimpleBundle implements BundleActivator
{
private BundleContext mcontext = null;
public void start(BundleContext context) throws Exception
{
System.err.println("你好我是插件,我将为你展示启动acitivty我已经启动了 我的BundleId为:"+context.getBundle().getBundleId());
}
public void stop(BundleContext context)
{
System.err.println("你好我是插件,我被停止了 我的BundleId为:"+context.getBundle().getBundleId());
}
}
3,编写plugin.xml配置文件
plugin.xml
是一个配置表,它跟AndroidManifest.xml作用类似。 plugin.xml文档放置在assets中即可 重要属性说明:
Bundle-Name 插件名称 Bundle-SymbolicName 插件包名
-与应用packagename可一一对应 Bundle-Version 插件版本 -1.0.0
Bundle-Activator 插件入口 -与Appliction 类似
Bundle-Activity 插件界面 -多个Activity可用 , 分割
Bundle-Service 插件Service -多个Service可用 , 分割
(v2.0.0新增) Bundle-Receiver 插件广播 -多个广播类可用 , 分割
(v2.0.0新增)
4, 编译生成插件apk文件
插件工程中添加的文件目录结构如下:
最后编译运行插件工程,生成的apk文件即为插件文件
END
步骤3:开发主应用
Apkplug 主应用开发分两步集成:
1. 获取主应用授权AppAuth。
登录账号进入Apkplug后台后,切换到“应用授权页面”,按要求填写好应用信息,然后确定,你就拥有了一个等待开发的应用授权AppAuth。应用授权界面如下:
进入“授权列表”页面,点击“查看详情”链接,进入“应用详情界面”,就可以看到已申请的AppAuth,点击其后面的“复制”,即可直接复制AppAuth,如下图所示
2. 对接Apkplug SDK 导入相关库文件。
①配置应用权限
主应用需要几个基础的权限配置,请将以下的几个权限加入到主应用的AndroidManifest.xml中。
<!-- 插件平台需要的权限! -->
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"></uses-permission>
<uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS"/>
<uses-permission android:name="android.permission.INTERNET"/>
<uses-permission android:name="android.permission.READ_PHONE_STATE">
</uses-permission>
另外将一下加入到<application></application>节点中
<!-- 插件平台需要的配置! -->
<activity
android:name="org.apkplug.app.apkplugActivity"
android:theme="@style/android:Theme.Light"
android:configChanges="orientation|keyboardHidden"
/>
最后将我们从Apkplug管理后台申请到的AppAuth加入到配置文件中。
<meta-data android:name="apkplug-auth" android:value="xxxxxxxx" ></meta-data>
注:由于3.2.2节中我们直接复制了AppAuth,此处直接粘贴到AndroidManifest文档中。
如下图:
②导入SDK库文件
主应用需要导入两个文件,将其放入libs目录中即可。
1, libndkfoo.so
2, Bundle2.0.0.jar
如下图:
这两个库文件在Apkplug SDK中可以找到。
然后:
主应用启动Apkplug最简只需要一段代码即可,建议在Application中启动框架。
FrameworkInstance frame=FrameworkFactory.getInstance().start(List<BundleActivator>,Context);
将上一步骤开发好的插件apk,放置在主应用工程里的assets路径下。
http://jingyan..com/article/ca41422fc2ce471eae99ed3d.html
⑨ android有几种方法实现类似windows的dll的模块,供其他android调用
1、本质,Java代码经过编译,导出jar,其他项目中安装调用jar
2、整个项目设为依赖库项目,导入变成控件后,由其他工程调用
3、存在特定路径下作为公共库,在需要引用此库的工程的lib目录中包括公共库路径
4、其他……
⑩ 什么是android应用模块开发
android应用模块开发:
在android的项目开发中,都会遇到后期功能拓展增强与主程序代码变更的现实矛盾,也就是程序的灵活度。
由于linux平台的安全机制,再加上dalvik的特殊机制,各种权限壁垒,使得开发一个灵活多变的程序,变得比较困难,不像pc平台下那么容易。
瞅瞅elipse的插件,瞅瞅360的插件,在android下,我们一开始很难写好一个主程序,然后通过插件机制来应对以后的功能拓展,于是程序变得不那么灵活多变了。
比如一款android下的安全软件,新版本增加了一个功能,如短信拦截,往往会因为一个模块的增加,而重新编译一个apk包,这样周而复始,哪怕只增加50kb的功能代码,用户也需要升级一个完整的apk,往往是5~6M的体积。