I'm not 100% sure what you're asking but I think the question is based on a number of misunderstandings that I'd like to eliminate.
import lfreytag.TideNowOR.R;
Is importing the references to the resources defined in a specific module (http://developer.android.com/sdk/installing/create-project.html#SettingUpLibraryModule). These resources include everything in the res folder (strings, ids, drawables, layouts etc.).
This import has to include the package name because that name is the namespace for your code. Namespaces are an essential element of all modern programming languages to avoid name collisions between multiple identifiers that share the same name.
The way to use common code in different projects (assuming you use Android Studio and Gradle to build) is to:
- Create a separate project and add that projects as a dependency to your different apps, see e.g. here: Android studio add external project to build.gradle
- Create a library module and reference that module in your app module:
http://developer.android.com/sdk/installing/create-project.html#SettingUpLibraryModule
- Use flavors to use different package names and "version-specific information"
In the first two cases the build tool will take care of "converting" your library lfreytag.TideNowOR package name to your app package name lfreytag.TideNowWA or whatever you need. It will basically create an aar package for reuse in other projects/modules.
From your description option 3 seems to be the best option and I'd like to explain how you could structure your project to be able to have the common code and different "apps".

The screenshot shows one of my projects that has a main node which would be your lfreytag.TideNowOR code you want to reuse in your different "apps". It can contain all the elements of a typical Android project like the actual Java code, resource files and files in the assets folder.
The app has different flavors and those flavors map to what you refer to as "apps" (in the screenshots the flavors are the free, pro and pro_amazon nodes).
A flavor is a variation of your app and can define its own package name, have its own manifest, set variables to be used in the manifest (e.g. the app name or ContentProvider authorities) or in your code (flags to distinguish different flavors, flavor specific strings etc.).
To use different package names in the manifest for the different flavors (or your "apps") you'd define the applicationId in the build file like so:
defaultConfig {
applicationId "lfreytag.TideNowOR"
}
productFlavors {
wa {
applicationId "lfreytag.TideNowWA"
}
ca {
applicationId 'lfreytag.TideNowCA'
}
// .. more flavors
}
To use different app names for the different flavors you'd have:
defaultConfig {
manifestPlaceholders = [appName: "Tide Now Oregon"]
}
wa {
manifestPlaceholders = [appName: "Tide Now Washington"]
}
in the build file and the following the the manifest:
<application
android:name="MyApp"
android:label="${appName}"
As mentioned before you can do much more than that but this should suffice as an example.
Quintessential is that the build file is the place to put flavor or "app" specific configuration while all flavor specific files go into the respective folder (raw files, asset files, resource files, code, manifest).
When the application is built, each flavor is built into an apk and so the flavors indeed become your "apps".