怎样用git获取指定的Android Linux Kernel

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了怎样用git获取指定的Android Linux Kernel相关的知识,希望对你有一定的参考价值。

进入kernel/common,这里不需要用到repo,直接用Git即可。
git clone git://android.git.kernel.org/kernel/common.git
这可能需要不少的时间,因为它会把整个Linux Kernel的代码复制下来。
如果需要某个branch的代码,用git checkout即可。比如我们刚刚拿了kernel/common.git的代码,那就先进入到common目录,然后用下面的命令:
git checkout origin/android-goldfish-2.6.27 -b goldfish
这样我们就在本地建立了一个名为goldfish的android-goldfish-2.6.27分支,代码则已经与android- goldgish-2.6.27同步。我们可以通过git branch来列出本地的所有分支。

root@localhost mydroid]#git clone git://android.git.kernel.org/kernel/common.git kernel

//把服务器上的所有kernel都下载到本地kernel目录,想只下载一个版本的kernel是不可能的因为服务器上只有一个包含kernel的common.git文件,而没有单个版本kernel的.git文件

[root@localhost mydroid]#cd kernel

[root@localhost kernel]# ls
arch CREDITS drivers include Kbuild MAINTAINERS net samples sound
block crypto firmware init kernel Makefile README scripts usr
COPYING Documentation fs ipc lib mm REPORTING-BUGS security virt
[root@localhost kernel]# git branch -a
* android-2.6.27
diff
remotes/origin/HEAD -> origin/android-2.6.27
remotes/origin/archive/android-2.6.25
remotes/origin/archive/android-2.6.27
remotes/origin/archive/android-2.6.29
remotes/origin/archive/android-2.6.32
参考技术A 使用Git获取Android源码的时候一般需要使用repo脚本,但是使用repo脚本得到的源码并不带kernel内核的,所以如果需要下载kernel内核还必须使用git手动下载...

使用git的clone命令,把内核下载下来,到kernel文件夹
git clone git://android.git.kernel.org/kernel/common.git kernel
下载完之后,进入kernel文件夹,然后可以查看所有的分支,以及当前源码版本分支
在这里需要提一下的就是,git有本地的分支跟远程服务器分支两个概念,当clone整个common.git的时候,本地只有android-2.6.36这个分支的,
使用下面命令可以查看当前目录的本地分支
git branch
在我电脑上面,已经下载了32和35的源代码,所以分支有三个,前面带星号是当前版本的分支

bing@bing-laptop:~/android/kernel$ git branch
android-2.6.32
android-2.6.35
* android-2.6.36
然后加入-r参数可以查看远程服务器的分支
bing@bing-laptop:~/android/kernel$ git branch -r
origin/HEAD -> origin/android-2.6.36
origin/android-2.6.35
origin/android-2.6.36
origin/android-2.6.37
origin/android-2.6.38
origin/android-2.6.39
origin/archive/android-2.6.25
origin/archive/android-2.6.27
origin/archive/android-2.6.29
origin/archive/android-2.6.32
origin/archive/android-gldfish-2.6.29
origin/archive/android-goldfish-2.6.27
origin/linux-bcm43xx-2.6.39
origin/linux-wl12xx-2.6.39

使用-a参数则显示本地和远程服务器的分支,并且远程服务器分支会加前缀"remotes/"

bing@bing-laptop:~/android/kernel$ git branch -a
android-2.6.32
android-2.6.35
* android-2.6.36
remotes/origin/HEAD -> origin/android-2.6.36
remotes/origin/android-2.6.35
remotes/origin/android-2.6.36
remotes/origin/android-2.6.37
remotes/origin/android-2.6.38
remotes/origin/android-2.6.39
remotes/origin/archive/android-2.6.25
remotes/origin/archive/android-2.6.27
remotes/origin/archive/android-2.6.29
remotes/origin/archive/android-2.6.32
remotes/origin/archive/android-gldfish-2.6.29
remotes/origin/archive/android-goldfish-2.6.27
remotes/origin/Linux-bcm43xx-2.6.39
remotes/origin/linux-wl12xx-2.6.39

git checkout -b "A" 表示新建一个名为“A”的本地分支,并且切换到该分支上
把指定的远程分支切换到你新建的一个本地分支的,命令格式如下:
git checkout -b "本地分支名" "你所需要下载的分支"
例如我要下载2.6.38的内核到我新建的本地分支为:
git checkout -b android-2.6.38 origin/android-2.6.38
则我本机的分支结构为:
bing@bing-laptop:~/android/kernel$ git branch
android-2.6.32
android-2.6.35
android-2.6.36
* android-2.6.38
如果需要在本地分支之间切换,则使用
git branch "分支名"
对于不需要的分支可以使用branch命令删除
git branch -d remotes/origin/android-2.6.39
由于只是使用checkout的下载功能,没有上传,所以就比较简单,基本就那几个分支的下载跟管理。

xamarin怎样获取android外卡路径

参考技术A

xamarin怎样获取android外卡路径

一部分手机将eMMC存储挂载到 /mnt/external_sd 、/mnt/sdcard2 等节点,而将外置的SD卡挂载到 Environment.getExternalStorageDirectory()这个结点。
此时,调用Environment.getExternalStorageDirectory(),则返回外置的SD的路径。

android 怎样动态的获取sd卡路径

链接电脑USB调试情况下,在电脑上有新的磁盘显示,一个SD的,一个手机的,打开SD的就可以找各文件夹路径

Android怎样获取外部存储器路径

读写sdcard上的文件
其中读写步骤按如下进行:
1、调用Environment的getExternalStorageState()方法判断手机上是否插了sd卡,且应用程序具有读写SD卡的权限,如下代码将返回true
Environment.getExternalStorageState().equals(Environment.MEDIA_MOUNTED)
2、调用Environment.getExternalStorageDirectory()方法来获取外部存储器,也就是SD卡的目录,或者使用"/mnt/sdcard/"目录
3、使用IO流操作SD卡上的文件
注意点:手机应该已插入SD卡,对于模拟器而言,可通过mksdcard命令来创建虚拟存储卡
必须在AndroidManifest.xml上配置读写SD卡的权限
<uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS"/>
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>

我怎样才能获得外部SD卡路径为Android 4.0 +

1. 我想你需要这个外部SD卡:
new File("/mnt/external_sd/")

new File("/mnt/extSdCard/")
你的情况......
在更换Environment.getExternalStorageDirectory()您的作品,应在MNT目录优先和工作在那里检查什么..
你键入选择哪个SD卡
File storageDir = new File("/mnt/");
if(storageDir.isDirectory())
String[] dirList = storageDir.list();
TODO some type of selecton method?

怎样获取class路径

    import java.io.File;

    public class FileTest 

    public static void main(String[] args) throws Exception 

    System.out.println(Thread.currentThread().getContextClassLoader()

    .getResource(""));

    System.out.println(FileTest.class.getClassLoader().getResource(""));

    System.out.println(ClassLoader.getSystemResource(""));

    System.out.println(FileTest.class.getResource(""));

    System.out.println(FileTest.class.getResource("/"));

     Class文件所在路径

    System.out.println(new File("/").getAbsolutePath());

    System.out.println(System.getProperty("user.dir"));

    System.out.println(System.getProperty("file.encoding"));

android 怎么获取相册路径

android手机4.2版本之前是一个方法,大于4.2版本又是一个方法。

注意:现在手机市场android版本2015面上半年平均4.4,现在是平均5.0了。

    before

    你百度一下,都能查到,很简单.

    after

    private void startPickPhotoActivity()
        Intent intent = new Intent(Intent.ACTION_OPEN_DOCUMENT);
        intent.setType("image/*"); Or \'image/ jpeg \'
        startActivityForResult(intent, RESULT_PICK_PHOTO_NORMAL);
       

获得图片返回的路径
    @Override
    protected void onActivityResult(int requestCode, int resultCode,
        Intent data)
    if (requestCode == RESULT_PICK_PHOTO_NORMAL)
        if (resultCode == RESULT_OK && data != null)

选中图片路径

mFileName = MainActivity.getPath(getApplicationContext(),
            data.getData());
        if ("".equals(mFileName))
            return;
        
        Intent intent = new Intent(this, EditActivity.class);
        intent.putExtra("pathName", mFileName);
        startActivity(intent);
       
    
   
    @TargetApi(Build.VERSION_CODES.KITKAT)
    public static String getPath(final Context context, final Uri uri)
    final boolean isKitKat = Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT;
     DocumentProvider
    if (isKitKat && DocumentsContract.isDocumentUri(context, uri))
        ExternalStorageProvider
        if (UriUtils.isExternalStorageDocument(uri))
        final String docId = DocumentsContract.getDocumentId(uri);
        final String[] split = docId.split(":");
        final String type = split[0];
        if ("primary".equalsIgnoreCase(type))
            return Environment.getExternalStorageDirectory() + "/"
                + split[1];
        
       
        DownloadsProvider
        else if (UriUtils.isDownloadsDocument(uri))
        final String id = DocumentsContract.getDocumentId(uri);
        final Uri contentUri = ContentUris.withAppendedId(
            Uri.parse("content:downloads/public_downloads"),
            Long.valueOf(id));
        return UriUtils.getDataColumn(context, contentUri, null, null);
       
        MediaProvider
        else if (UriUtils.isMediaDocument(uri))
        final String docId = DocumentsContract.getDocumentId(uri);
        final String[] split = docId.split(":");
        final String type = split[0];
        Uri contentUri = null;
        if ("image".equals(type))
            contentUri = MediaStore.Images.Media.EXTERNAL_CONTENT_URI;
         else if ("video".equals(type))
            contentUri = MediaStore.Video.Media.EXTERNAL_CONTENT_URI;
         else if ("audio".equals(type))
            contentUri = MediaStore.Audio.Media.EXTERNAL_CONTENT_URI;
        
        final String selection = MediaColumns._ID + "=?";
        final String[] selectionArgs = new String[] split[1] ;
        return UriUtils.getDataColumn(context, contentUri, selection,
            selectionArgs);
       
    
     MediaStore (and general)
    else if ("content".equalsIgnoreCase(uri.getScheme()))
        Return the remote address
        if (UriUtils.isGooglePhotosUri(uri))
        return uri.getLastPathSegment();
        return UriUtils.getDataColumn(context, uri, null, null);
    
     File
    else if ("file".equalsIgnoreCase(uri.getScheme()))
        return uri.getPath();
    
    return null;
   

如何获取android sdcard路径

Environment.getExternalStorageDirectory()

android怎么获取U盘路径

用Re管理器进入/mnt/目录一个一个找

android怎么获取分区路径

我们可以在adb中使用df 来查看分区情况。

1、跨分区不能用 MV命令来拷贝。但是可以用CP命令。如PWD,当前目录为:/data/local/tmp 。

此目录下有个busybox和1.txt文件。则利用CP命令拷贝如下:./busybox cp1.txt /system.

2、Android的用户组有 System, root, shell

3、怎么样才能操作分区。

分区操作是需要权限的。一般来说System分区的权限限制得比较严,Data分区限制比较严,用户可以操作的目录有local,app目录。比如/data/local/tmp.

data分区常用目录:app , system , data ,local,misc 其中system,local可以进入并使用ls等命令。data,app可以进入,但不能用ls命令。

data/data目录:存放的是所有APK程序数据的目录,每个APK对就一个自己的Data目录,就是在data/data/目录下,会产生一个跟Package一样的目录。如有一个APK,它的包名叫.test.hello则,在data/data/目录下会有一个.test.hello的目录,这个APK只能操作此目录,不能操作其它APK的目录.这个在LINUX下叫做用户进程只能操作自己的进程目录.

data/app目录:用户安装的APK放在这里。我们如果把APK放入这个文件夹下面的话,就算安装好了。这就叫静默安装。不用管APK文件里面的lib目录下的库文件,系统会自动帮我们放入调用库的。

data/system目录下面有packages.xml ,packages.list,appwidgets.xml, 等等一些记录手机安装的软件,Widget等信息。

data/misc目录:保存WIFI帐号,VPN设置信息等。如保存了一个WIFI连接帐号,则此目录下的WIFI目录下面可以查看到。

system分区常用目录: app , lib, xbin, bin , media,framework.

system/app目录:存放系统自带的APK。没有测试过是否将APK放入到System/app目录下,也是静默安装APK。?

system/lib目录:存放APK程序用到的库文件。

system/bin目录和system/xbin目录:存放的是shell命令。

system/framework目录:启用Android系统所用到框架,如一些jar文件。

4 Android下面的目录都是有权限的,要操作目录都需要有此权限才能操作,如果没有,则使用chomd777来修改.如果是分区根目录,如/data分区, /system分区.都没有权限,则需要重新挂载. 使用 mount -oremount XX

以上是关于怎样用git获取指定的Android Linux Kernel的主要内容,如果未能解决你的问题,请参考以下文章

android开发怎样获得文件夹中的所有文件

xamarin怎样获取android外卡路径

在Android机顶盒上 怎样获取有线网卡MAC地址?

android shell 如何获取明天的日期?

android动态添加控件,怎样指定位置

怎样用C语言获取屏幕上指定位置处的字符的值?